1. 程式人生 > 其它 >Python----列表與元組

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

注意:如果查詢的資料不存在則報錯。

 

  • count():統計指定資料在當前列表中出現的次數。

 

name_list = ['張三','李四','王五','趙六','張三']
print(name_list.count('張三'))
#2

len():訪問列表⻓度,即列表中資料的個數。

print(len(name_list))
#5

in與not in

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)