我們已經看到了如何使用 append
向列表增加元素。不過除此以外還有其他一些方法。實際上,向列表增加元素共有 3 種方法:append
、extend
和 insert
。
append
向列表末尾增加一個元素。extend
向列表末尾增加多個元素。insert
在列表中的某個位置增加一個元素,不一定非得在列表末尾。你可以告訴它要在哪裡增加元素。
增加到列表末尾:append
我們已經見過 append
是如何工作的。它把一個元素增加到列表末尾:
>>> letters.append('n')>>> print letters['a', 'b', 'c', 'd', 'e', 'n']
再來增加一項:
>>> letters.append('g')>>> print letters['a', 'b', 'c', 'd', 'e', 'n', 'g']
注意這些字母並沒有按順序排列。這是因為 append
只是將元素增加到列表末尾。如果希望這些元素按順序排列,必須對它們排序。稍後就會談到排序。
擴展列表:extend
extend
在列表末尾增加多個元素:
>>> letters.extend(['p', 'q', 'r'])>>> print letters['a', 'b', 'c', 'd', 'e', 'n', 'g', 'p', 'q', 'r']
注意 extend
方法的圓括號中是一個列表。列表有一個中括號,所以對於 extend
,可以同時有圓括號和中括號。
提供給 extend
的列表中的所有內容都會增加到原列表的末尾。
插入一個元素:insert
insert
會在列表中的某個位置增加一個元素。可以指定希望將元素增加到列表的哪個位置:
>>> letters.insert(2, 'z')>>> print letters['a', 'b', 'z', 'c', 'd', 'e', 'n', 'g', 'p', 'q', 'r']
在這裡,我們將字母 z 增加到索引為 2 的位置。索引 2 是列表中的第 3 個位置(因為索引從 0 開始)。原先位於第 3 個位置上的字母(也就是 c)會向後推一個位置,移到第 4 個位置上。它後面的每一個元素也都要向後移一個位置。
append
和 extend
的區別
有時 append
和 extend
看起來很類似,不過它們確實有一些區別。下面再回到原來的列表。首先,用 extend
增加 3 個元素:
>>> letters = ['a','b','c','d','e']>>> letters.extend(['f', 'g', 'h'])>>> print letters['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
現在,再用 append
做同樣的事情:
>>> letters = ['a', 'b', 'c', 'd', 'e']>>> letters.append(['f', 'g', 'h'])>>> print letters['a', 'b', 'c', 'd', 'e', ['f', 'g', 'h']]
怎麼回事?嗯,我們前面說過,append
會向列表增加一個元素。它怎麼會增加 3 個元素呢?其實它並沒有增加 3 個元素,這裡確實只增加了一個元素,只不過這剛好是一個包含 3 項的列表。正是這個原因,所以在這個列表中多了一對中括號。要記住,列表可以包含任何東西,也包括其他列表。這個例子就屬於這種情況。
insert
的工作與 append
相同,只不過你可以告訴它在哪裡放入新的元素。 append
總是把新元素放在列表末尾。