python中列表(list)用來表示有序可變元素的集合,元素可以是任意數(shù)據(jù)類型树肃。列表是一種復(fù)合數(shù)據(jù)類型蒸矛,它是容器結(jié)構(gòu),可以包含其他類型的數(shù)據(jù)胸嘴,在開發(fā)過程中會(huì)大量應(yīng)用雏掠。
列表的定義
列表由一對(duì)中括號(hào)進(jìn)行定義,元素與元素之間使用逗號(hào)隔開劣像。
空列表的定義
>>> a = []
>>> print(a, type(a))
[] <class 'list'>
字符串列表
>>> b = ['hello','world!']
>>> print(b, type(b))
['hello', 'world!'] <class 'list'>
數(shù)字列表
>>> s = [80,79,85.5,98]
>>> print(s, type(s))
[80,79,85.5,98] <class 'list'>
當(dāng)然也可以是混合的數(shù)據(jù)
>>> c = ['a', 2, 2.5]
>>> print(c, type(c))
['a', 2, 2.5] <class 'list'>
再次強(qiáng)調(diào)乡话,列表的元素可以是任何數(shù)據(jù)類型,列表作為列表的元素叫做列表的嵌套耳奕,通過列表嵌套可以表示多維數(shù)據(jù)绑青。
>>> score = [
['語文','數(shù)學(xué)','英語'],
[80,79,89],
[90,89,67],
[87,56,78]
]
列表的拼接
像字符串一樣,列表之間也可以進(jìn)行加法運(yùn)算實(shí)現(xiàn)列表的拼接屋群,也可以和整數(shù)進(jìn)行乘法運(yùn)算實(shí)現(xiàn)重復(fù)拼接闸婴。
>>> [1,2,3] + [4,5,6]
[1,2,3,4,5,6]
>>> [1,2,3] * 3
[1,2,3,1,2,3,1,2,3]
列表的索引和切片
序列的索引,切片操作完全一致芍躏,參見字符串邪乍。
>>> l = [1,2,3,4]
>>> l[-1]
4
>>> l[:2]
[1,2]
注意嵌套列表的元素獲取
>>> score = [
['語文','數(shù)學(xué)','英語'],
[80,79,89],
[90,89,67],
[87,56,78]
]
>>> score[1][2]
89
列表的常用操作
python中列表操作非常靈活,是非常重要和經(jīng)常使用的數(shù)據(jù)類型。
增加元素
給列表增加元素需要使用列表的方法
.append(el)
在列表的末尾添加一個(gè)元素
>>> ls = [1,2,3]
>>> ls.append(4)
>>> print(ls)
[1,2,3,4]
.insert(index,el)
在列表指定索引處插入一個(gè)元素
>>> ls = [1,2,3]
>>> ls.insert(0,0)
>>> print(ls)
[0,1,2,3]
>>> ls.insert(2,'a')
>>> print(ls)
[0,1,'a',3]
.extend(iterable)
擴(kuò)展列表溺欧,元素為傳入可迭代對(duì)象中的元素
>>> ls = [1,2,3]
>>> ls.extend([4,5,6])
>>> print(ls)
[1,2,3,4,5,6]
刪除元素
.pop(index=-1)
刪除指定索引的元素,并返回該元素柏肪,沒有指定索引默認(rèn)刪除最后一個(gè)元素
>>> ls = [1,2,3,4]
>>> ls.pop()
4
>>> print(ls)
[1,2,3]
>>> ls.pop(0)
1
>>> print(ls)
[2,3]
.remove(value)
從列表中刪除第一個(gè)指定的值value
姐刁,如果不存在value
則報(bào)錯(cuò)
>>> ls = [1,2,3,1]
>>> ls.remove(1)
>>> print(ls)
[2,3,1]
.clear()
清空列表,原列表變成空列表
>>> ls = [1,2,3]
>>> ls.clear()
>>> print(ls)
[]
修改元素
列表中的元素可以進(jìn)行修改烦味,只需要使用索引賦值即可聂使。
>>> ls = [1,2,3]
>>> ls[1] = 'a'
>>> print(ls)
[1, 'a', 3]
列表的其他方法
.copy()
返回一個(gè)列表的淺拷貝。在講可變與不可變類型的時(shí)候再詳細(xì)討論谬俄。
.count(value)
統(tǒng)計(jì)列表中value
出現(xiàn)的次數(shù)
>>> ls = [1,2,3,1]
>>> ls.count(1)
2
index(self, value, start=0, stop=9223372036854775807)
返回列表中指定值value
的第一個(gè)索引柏靶,不存在則報(bào)錯(cuò)
>>> ls = [1,2,3,1]
>>> ls.index(1)
0
>>> ls.index(1,1)
3
.reverse()
翻轉(zhuǎn)列表元素順序
>>> ls = [1,2,3]
>>> ls.reverse()
>>> print(ls)
[3,2,1]
.sort(key=None, reverse=False)
對(duì)列表進(jìn)行排序,默認(rèn)按照從小到大排序溃论,當(dāng)參數(shù)reverse=True時(shí)屎蜓,從大到小進(jìn)行排序。注意列表中的元素類型需要相同钥勋,否則拋出異常炬转。
>>> ls = [2,1,3]
>>> ls.sort()
>>> print(ls)
[1,2,3]
>>> ls.sort(reverse=True) # 從大到小
>>> print(ls)
[3,2,1]