一. 特點:列表是最長用的內置數據類型之一
1. 列表用中括號【】表示
2. 內部元素用逗號,分隔。
3.列表內部元素可支持任意數據類型
l = ['so','12','$$','A',['sad','fdw']]
二.列表的特性
1.索引
l = ['so','12','$$','A',['sad','fdw']]
print(type(l))
print(l[0])
print(l[-1])
print(l[3])
# 執行結果
<class 'list'>
so
['sad', 'fdw']
A
2.切片
l = ['so','12','$$','A',['sad','fdw']]
print(l[1:]) #從第二個元素開始
print(l[::-1]) #倒序輸出
print(l[::]) #輸出所有
#執行結果
['12', '$$', 'A', ['sad', 'fdw']]
[['sad', 'fdw'], 'A', '$$', '12', 'so']
['so', '12', '$$', 'A', ['sad', 'fdw']]
3.重複
l = ['so','12','$$','A',['sad','fdw']] print(l * 3 )
#執行結果
['so', '12', '$$', 'A', ['sad', 'fdw'], 'so', '12', '$$', 'A', ['sad', 'fdw'], 'so', '12', '$$', 'A', ['sad', 'fdw']]
4. 連接
l = ['so','12','$$','A',['sad','fdw']]
q = ['123','456']
print(l + q)
#執行結果
['so', '12', '$$', 'A', ['sad', 'fdw'], '123', '456']
5. 成員操作符號
l = ['so','12','$$','A',['sad','fdw']]
q = ['123','456']
print('12' in l)
print( '123' in q)
#執行結果
True
True
6. for 循環遍歷
l = ['so','12','$$','A',['sad','fdw']]
#q = ['123','456']
for i in l:
print(l)
#執行結果
['so', '12', '$$', 'A', ['sad', 'fdw']]
['so', '12', '$$', 'A', ['sad', 'fdw']]
['so', '12', '$$', 'A', ['sad', 'fdw']]
['so', '12', '$$', 'A', ['sad', 'fdw']]
['so', '12', '$$', 'A', ['sad', 'fdw']]
7.嵌套列表
service2 = [['123','abc'],['456','def'],['789','ghi']]
print(service2[1][1])
print(service2[-1][1])
print(service2[:][1])
print(service2[:-1][0])
print(service2[0][:-1])
# 執行結果
def
ghi
['456', 'def']
['123', 'abc']
['123']
三. 列表的增加
append 增加
extend 拉伸
insert 插入
l = ['12','34','56','78']
print(l + ['90'])
print(l)
l.append('ab') #追加一個元素到列表中
print(l)
l.extend(['cd','ef','gh']) #追加多個元素到列表中
print(l)
l.insert(1,'00') #指定位置插入元素,
print(l)
#執行結果
['12', '34', '56', '78', '90']
['12', '34', '56', '78']
['12', '34', '56', '78', 'ab']
['12', '34', '56', '78', 'ab', 'cd', 'ef', 'gh']
['12', '00', '34', '56', '78', 'ab', 'cd', 'ef', 'gh']
四. 刪除
remove 刪除指定元素
del 刪除關鍵字,從內存中刪除
l = ['12','34','56','78']
l.remove('78') #刪除指定元素
print(l)
del l #s刪除列表
print(l) # 輸出錯誤,列表l未定義
#執行結果
NameError: name 'l' is not defined
['12', '34', '56']
五. 列表的修改
1. 通過索引,重新賦值
l = ['12','34','56','78']
l[0] = '00' #直接通過索引賦值
print(l)
l[:1] = ['11','22'] #通過切片賦值
print(l)
#執行結果
['00', '34', '56', '78']
['11', '22', '34', '56', '78']
六. 列表的查找
l = ['12','34','56','12','78']
print(l.count('12')) #查看出現的次數
print( l.index('34')) #查看指定元素的索引值
print(l.index('12',2,5)) #查看指定元素的索引值,並限定範圍
#執行結果
2
1
3
七. 列表的排序
sort 排序在按照 ascli碼排列
l = ['12','34','56','12','78','00']
l.sort() #列表排序
print(l)
import random #調用隨機數
random.shuffle(l) #打亂順序
print(l)
#執行結果
['00', '12', '12', '34', '56', '78']
['78', '56', '34', '00', '12', '12']
八. 列表腳本練習
1.輸入月份,判斷季節
month = int(input('Month:'))
if month in [3,4,5]:
print('春季')
elif month in [6,7,8]:
print('夏季')
elif month in [9,10,11]:
print('秋季')
elif month in [12,1,2]:
print('冬季')
else:
print('輸入不合法')
2.
names= ['123','877','1000']
print('+'.join(names[:-1]) + '=' + names[-1])
#執行結果
123+877=1000
腳本: 用戶管理系統
1.系統裏面有多個用戶,用戶的信息目前保存在列表裏面
users = ['root','westos']
passwd = ['123','456']
2.用戶登陸(判斷用戶登陸是否成功
1).判斷用戶是否存在
2).如果存在
1).判斷用戶密碼是否正確
如果正確,登陸成功,推出循環
如果密碼不正確,重新登陸,總共有三次機會登陸
3).如果用戶不存在
重新登陸,總共有三次機會
"""
users = ['root','westos']
passwd = ['123','456']
print('--------用戶登錄系統---------')
usertime = 0
passtime = 0
while usertime < 3:
a = input('輸入用戶名: ')
if a in users:
while passtime < 3:
b = input('請輸入密碼')
if b in passwd:
print('登陸成功!')
exit()
else:
print('密碼錯誤')
passtime += 1
else:
print('三次輸入有誤,請稍後再試...')
else:
print('用戶名不存在,請重試.')
usertime += 1
else:
print('三次輸入有誤,請稍後再試.')
腳本:棧的工作
stack = []
info = """
棧操作
1.入棧
2.出棧
3.棧頂元素
4.棧的長度
5.棧是否爲空
q.退出
"""
while True:
print(info)
choice = input('請輸入選擇:')
if choice == '1':
item = input('入棧元素:')
stack.append(item)
print('元素%s入棧成功' %item)
elif choice == '2':
#先判斷棧是否爲空
if not stack:
print('棧爲空,不能出棧')
else:
item = stack.pop()
print('%s元素出棧成功' %item)
elif choice == '3':
if len(stack) == 0:
print('棧爲空')
else:
print('棧頂元素爲%s' %(stack[-1]))
elif choice == '4':
print('棧的長度爲%s' %(len(stack)))
elif choice == '5':
if len(stack) == 0:
print('棧爲空')
else:
print('棧不爲空')
elif choice == 'q':
print('退出')
break
else:
print('請輸入正確的選擇')