Python 資料型別 - 列表

Jinku Hu 2023年1月30日 2018年3月8日
  1. Python 建立列表
  2. 訪問列表元素
  3. 向列表增加元素
  4. 從列表中刪除元素
  5. 列表方法
  6. 列表成員檢查
  7. Python 遍歷列表元素
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() 返回列表中所有元素的總和
Author: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn