Python 資料型別 - 列表

Jinku Hu 2023年1月30日
  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() 返回列表中所有元素的總和
Enjoying our tutorials? Subscribe to DelftStack on YouTube to support us in creating more high-quality video guides. Subscribe
作者: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

DelftStack.com 創辦人。Jinku 在機器人和汽車行業工作了8多年。他在自動測試、遠端測試及從耐久性測試中創建報告時磨練了自己的程式設計技能。他擁有電氣/ 電子工程背景,但他也擴展了自己的興趣到嵌入式電子、嵌入式程式設計以及前端和後端程式設計。

LinkedIn Facebook