Python----列表與元組
-
列表可以⼀次性儲存多個數據,且可以為不同資料型別,對這些資料的操作有:查、增、改、刪。
常用操作
查詢 .index() len(list)
增加 append() extend() insert()
修改
刪除
li = [1,2,3,4,"張三","李四"]
根據下標(索引)查詢
name_list = ['張三', '李四', '王五','趙六']
print(name_list[0])
#張三
函式
-
index():返回指定資料所在位置的下標 。
語法
# 列表序列.index(資料, 開始位置下標, 結束位置下標)
name_list = ['張三', '李四', '王五','趙六']
print(name_list.index('張三', 0, 2))
#0
注意:如果查詢的資料不存在則報錯。
name_list = ['張三','李四','王五','趙六','張三']
print(name_list.count('張三'))
#2
len():訪問列表⻓度,即列表中資料的個數。
print(len(name_list))
#5
in:判斷指定資料在某個列表序列,如果在返回True,否則返回False
not in:判斷指定資料不在某個列表序列,如果不在返回True,否則返回False
name_list = ['張三', '李四', '王五','趙六']
name = input('請輸⼊您要搜尋的名字:')
if name in name_list:
print(f'您輸⼊的名字是{name}, 名字已經存在')
else:
print(f'您輸⼊的名字是{name}, 名字不存在')
增加
作⽤:增加指定資料到列表中。
函式
-
append():
列表結尾追加資料。
語法
# 列表序列.append(資料)
name_list = ['張三', '李四', '王五','趙六']
name_list.append('阿坤')
print(name_list)
如果append()追加的資料是⼀個序列,則追加整個序列到列表
name_list = ['張三', '李四', '王五','趙六']
alist = ["唱","跳","rap","籃球"]
name_list.append(alist)
print(name_list)
# ['張三', '李四', '王五', '趙六', ['唱', '跳', 'rap', '籃球']]
-
extend():
列表結尾追加資料,如果資料是⼀個序列,則將這個序列的資料逐⼀新增到列表。
name_list = ['張三', '李四', '王五','趙六']
name_list.extend('阿坤')
print(name_list)
# ['張三', '李四', '王五', '趙六', '阿', '坤']
如果新增一個序列,則會將序列裡面每一個元素新增進去
name_list = ['張三', '李四', '王五','趙六']
alist = ["唱","跳","rap","籃球"]
name_list.extend(alist)
print(name_list)
-
insert():
指定位置新增資料。
語法
# 列表序列.insert(位置下標, 資料)
name_list = ['張三', '李四', '王五','趙六']
name_list.insert(1, '阿坤')
# 結果:['張三','阿坤', '李四', '王五','趙六']
print(name_list)
刪除
刪除列表當中的資料
-
del
刪除整個列表
name_list = ['張三', '李四', '王五','趙六']
del name_list
print(name_list)
刪除指定資料(根據索引刪除)
name_list = ['張三', '李四', '王五','趙六']
del name_list[1]
print(name_list)
# ['張三', '王五', '趙六']
-
pop():
刪除指定下標的資料(預設為最後⼀個),並返回該資料。
name_list = ['張三', '李四', '王五','趙六']
name_list.pop(1)
print(name_list)
# ['張三', '王五', '趙六']
-
remove():
移除列表中某個資料的第⼀個匹配項。
# 列表序列.remove(資料)
name_list = ['張三', '李四', '王五','趙六']
name_list.remove("張三")
print(name_list)
# ['李四', '王五', '趙六']
-
clear():
清空列表
name_list = ['張三', '李四', '王五','趙六']
name_list.clear()
print(name_list)
# []
修改
修改指定下標資料
直接修改
name_list = ['張三', '李四', '王五','趙六']
name_list[0] = '阿坤'
print(name_list)
-
reverse()
逆置
num_list = [1, 5, 2, 3, 6, 8]
num_list.reverse()
print(num_list)
# [8, 6, 3, 2, 5, 1]
-
sort()
排序
語法
reverse表示排序規則,reverse = True 降序, reverse = False 升序(預設)
# 列表序列.sort(reverse=False)
li = [2,3,5,6,1,4,8]
li.sort(reverse=False)
print(li)
# [1, 2, 3, 4, 5, 6, 8]
li.sort(reverse=True)
print(li)
# [8, 6, 5, 4, 3, 2, 1]
複製
-
copy()
複製一個列表
name_list = ['張三', '李四', '王五','趙六']
name_li2 = name_list.copy()
print(name_li2)
# ['張三', '李四', '王五','趙六']
列表的迴圈遍歷
依次列印列表中的各個資料
for迴圈
name_list = ['張三', '李四', '王五','趙六']
for i in name_list:
print(i)
while迴圈
i = 0
name_list = ['Tom', 'Lily', 'Rose']
while i < len(name_list):
print(name_list[i])
i += 1
列表的巢狀
所謂列表巢狀指的就是⼀個列表⾥⾯包含了其他的⼦列表
# 找到籃球
name_list = [['張三', '李四', '阿坤'], ['唱', '跳', '籃球'], ['甲', '乙', '丙']]
# 第⼀步:按下標查詢到籃球所在的列表
print(name_list[1])
# 第⼆步:從李四所在的列表⾥⾯,再按下標找到資料李四
print(name_list[1][2])
元組
思考:如果想要儲存多個數據,但是這些資料是不能修改的資料,怎麼做?
定義元組
定義元組使⽤⼩括號,且逗號隔開各個資料,資料可以是不同的資料型別。
# 多個數據元組
t1 = (10, 20, 30)
# 單個數據元組
t2 = (10,)
注意:如果定義的元組只有⼀個數據,那麼這個資料後⾯也好新增逗號,否則資料型別為唯⼀的這個資料的資料型別
元組的常⻅操作
元組資料不⽀持修改,只⽀持查詢,具體如下
-
根據下標查詢
tuple1 = ('aa', 'bb', 'cc', 'bb')
print(tuple1[0])
-
index():
查詢某個資料,如果資料存在返回對應的下標,否則報錯,語法和列表、字串的index⽅法相同。
tuple1 = ('aa', 'bb', 'cc', 'bb')
print(tuple1.index('aa'))
-
count():
統計某個資料在當前元組出現的次數。
tuple1 = ('aa', 'bb', 'cc', 'bb')
print(tuple1.count('bb'))
-
len():
統計元組中資料的個數。
tuple1 = ('aa', 'bb', 'cc', 'bb')
print(len(tuple1))
元組內的直接資料如果修改則⽴即報錯
但是如果元組⾥⾯有列表,修改列表⾥⾯的資料則是⽀持的。
tuple2 = (10, 20, ['aa', 'bb', 'cc'], 50, 30)
print(tuple2[2]) # 訪問到列表
# ['aa', 'bb', 'cc']
tuple2[2][0] = 'aaaaa'
print(tuple2)
# (10, 20, ['aaaaa', 'bb', 'cc'], 50, 30)