要在 Python 中將元素添加到 list 類型的列表(數組),或組合另一個列表,請使用列表方法 append()、extend() 和 insert()。您還可以使用 + 運算符或切片來指定位置並分配它。
此處提供了以下信息。
- 在最後添加元素:
append()
- 在末尾合併另一個列表或元組(連接):
extend()
,+
操作員 - 在指定位置添加(插入)一個元素。:
insert()
- 在指定位置添加(插入)另一個列表或元組:片
在最後添加元素:append()
使用列表的 append() 方法,您可以將元素添加到末尾(最後)。如果要將其添加到末尾以外的位置,例如頂部,請使用 insert(),如下所述。
l = list(range(3))
print(l)
# [0, 1, 2]
l.append(100)
print(l)
# [0, 1, 2, 100]
l.append('new')
print(l)
# [0, 1, 2, 100, 'new']
列表也作為單個元素添加。它們沒有組合在一起。
l.append([3, 4, 5])
print(l)
# [0, 1, 2, 100, 'new', [3, 4, 5]]
在末尾合併另一個列表或元組(連接):extend(),+操作員
使用列表方法extend(),您可以在末尾(末尾)組合另一個列表或元組。所有元素都將附加到原始列表的末尾。
l = list(range(3))
print(l)
# [0, 1, 2]
l.extend([100, 101, 102])
print(l)
# [0, 1, 2, 100, 101, 102]
l.extend((-1, -2, -3))
print(l)
# [0, 1, 2, 100, 101, 102, -1, -2, -3]
請注意,每個字符(元素)一次添加一個字符。
l.extend('new')
print(l)
# [0, 1, 2, 100, 101, 102, -1, -2, -3, 'n', 'e', 'w']
也可以使用 + 運算符而不是 extend() 方法進行連接。
+ 運算符,返回一個新列表。+=
這也將允許您將其添加到現有列表中。
l2 = l + [5, 6, 7]
print(l2)
# [0, 1, 2, 100, 101, 102, -1, -2, -3, 'n', 'e', 'w', 5, 6, 7]
l += [5, 6, 7]
print(l)
# [0, 1, 2, 100, 101, 102, -1, -2, -3, 'n', 'e', 'w', 5, 6, 7]
在指定位置添加(插入)一個元素。:insert()
列表方法 insert() 可以在指定位置添加(插入)元素。
第一個參數指定位置,第二個參數指定要插入的元素。第一個(初始)位置是 0;對於負值,-1 是最後一個(最終)位置。
l = list(range(3))
print(l)
# [0, 1, 2]
l.insert(0, 100)
print(l)
# [100, 0, 1, 2]
l.insert(-1, 200)
print(l)
# [100, 0, 1, 200, 2]
與 append() 一樣,列表作為單個元素添加。它不會被合併。
l.insert(0, [-1, -2, -3])
print(l)
# [[-1, -2, -3], 100, 0, 1, 200, 2]
請注意, insert() 不是一種有效的操作,因為它需要以下成本。有關各種列表操作的計算複雜性,請參閱官方 wiki 上的以下頁面。O(n)
O(1)
deque 類型在標準庫集合模塊中作為一種類型提供,以這種方式將元素添加到頂部。例如,如果要將數據視為隊列(FIFO),則使用 deque 效率更高。
在指定位置添加(插入)另一個列表或元組:片
如果您使用切片指定範圍並分配另一個列表或元組,則將添加(插入)所有元素。
l = list(range(3))
print(l)
# [0, 1, 2]
l[1:1] = [100, 200, 300]
print(l)
# [0, 100, 200, 300, 1, 2]
您也可以替換原始元素。指定範圍內的所有元素都將被替換。
l = list(range(3))
print(l)
# [0, 1, 2]
l[1:2] = [100, 200, 300]
print(l)
# [0, 100, 200, 300, 2]