Python資料型別 - 列表

本節來介紹Python列表,包含了列表索引、列表切片、附加或擴充套件列表等內容。

Python建立列表

你可以通過使用方括號[]來建立列表。 列表中的元素列在方括號內,並用逗號分隔開。 列表中的元素可以是不同的資料型別。

l = []		# 空列表
l = [2, 4, 6, 8]		# 列表元素資料型別一致
l = [2, 'Python', 1+2j]		# 元素資料型別不同

你也可以建立一個巢狀列表,即列表中的元素為列表。

l = [[2,4,5], 'python']

訪問列表元素

以下是你可以訪問列表元素的一些方式:

列表索引:

你可以使用索引來訪問列表的元素,列表的索引從0開始。

>>> x = [2, 4, 6, 8, 10]
>>> print('x[0] =', x[0])			# 顯示第一個元素
x[0] = 2
>>> print('x[0:2] =', x[0:2])		# 顯示位於位置0和1的列表的前兩個元素
x[0:2] = [2, 4]
>>> print('x[2:] =', x[2:])			# 顯示位置2的元素(第三個元素)
x[2:] = [6, 8, 10]

列表中的元素可以被修改(更新、刪除、新增),因為列表是可變型別的。 如果索引超出列表索引範圍,則會出現IndexError

Warning
索引必須是一個整數,否則會出現TypeError

負索引

Python允許使用負索引來訪問列表中的元素。 例如,索引-1指的是最後一個元素。 同樣,索引-2指的是倒數第二項。

>>> l = [2, 4, 6, 8, 10]
>>> print(l[-1])
10
>>> print(l[-2])
8
>>> print(l[-3])
6

Python列表切片:

切片運算子用於從列表中提取一系列元素。

>>> l = [2, 4, 6, 8, 10]
>>> print(l[1:3])		# 列印從位置1到位置3(不含3)的元素
[4, 6]
>>> print(l[:2])		# 列印從開始到位置2(不含2)的元素
[2, 4]
>>> print(l[2:])		# 列印從位置2(包含2)開始的元素
[6, 8, 10]
>>> print(l[:])			# 列印整個列表
[2, 4, 6, 8, 10]

向列表增加元素

apend()方法

你可以使用列表方法append()將一個元素追加到列表的末尾。

>>> l = [1, 3, 5, 7, 9, 11]
>>> l.append(13)
>>> print(l)
[1, 3, 5, 7, 9, 11, 13]

extend()方法

append(x)x作為一個元素追加到列表中。 extend(x)將給定資料物件x中的所有元素來都新增到列表中。

>>> l = [1, 3, 5, 7, 9, 11]
>>> l.append([13, 14, 15])
>>> print(l)
[1, 3, 5, 7, 9, 11, [13, 14, 15]] # 列表[13, 14, 15]作為一個元素追加到列表l中
>>> l.extend([13, 14, 15])
>>> print(l)
[1, 3, 5, 7, 9, 11, 13, 14, 15]

+操作符

除了extend()方法,你還可以通過+操作符來連線兩個列表。

>>> l = [2, 4, 6, 8, 10]
>>> print(l + [12, 14, 16])
[2, 4, 6, 8, 10, 12, 14, 16]

insert(i, x)

你可以使用insert(i, x)方法將元素x插入到列表索引位置i上。

>>> l = [2, 4, 6, 8, 10]
>>> l.insert(2, 0)
>>> print(l)
[2, 4, 0, 6, 8, 10]

從列表中刪除元素:

del語句從列表中刪除一個或多個元素。 你也可以使用del刪除整個列表:

>>> l = [2, 4, 6, 8, 10]
>>> del l[4]
>>> print(l)
[2, 4, 6, 8]
>>> del l[0:2]
>>> print(l)
[6, 8]
>>> del l
>>> print(l)
Traceback (most recent call last):
    print(l)
NameError: name 'l' is not defined

在列表被del刪除後,在程式中繼續引用這個列表l將會收到報錯。如果你想清除一個列表,那麼你也可以使用clear()方法。

列表方法:

下表列出了具體的列表方法:

列表方法 描述
append() 將一個元素新增到列表的末尾
extend() 將多個元素新增到列表中。 將一個列表中的所有元素新增到另一個列表中
insert() 在所需位置新增一個元素
remove() 從列表中刪除特定元素
pop() 刪除列表中索引位置為index的元素,並返回該元素
clear() 從列表中刪除所有元素
index() 返回列表中第一個匹配元素的索引
count() 返回列表中給定引數的數量
sort() 按升序排序列表中的元素
reverse() 顛倒列表元素的順序
copy() 返回一個已經存在的列表的拷貝

列表成員檢查

Python in關鍵字用來檢查給定元素是否是列表的成員。

>>> l = [2, 4, 6, 8, 10]
>>> print(5 in l)
False
>>> print(2 in l)
True

Python遍歷列表元素

你可以使用for迴圈來遍歷一個列表。

l = [2, 4, 6, 8, 10]
for i in l:
    print(i)
2
4
6
8
10

適用於列表的內建函式

下表是適用於列表的一些可以來執行不同任務的內建函式的集合:

內建函式 描述
all() 當列表中的所有元素都為True時返回True。 當列表為空時,它也返回True
any() 當列表中的任何元素為True時返回True。 當列表為空時,它返回False
enumerate() 將列表的所有元素的索引和值作為元組返回。 它返回一個列舉物件
len() 返回列表中專案的數量或列表的長度
list() 將序列(元組,字串,字典)轉換為列表
max() 返回列表中的最大數字
min() 返回列表中的最小數字
sorted() 返回一個排序列表
sum() 返回列表中所有元素的總和