讀古今文學網 > 父與子的編程之旅:與小卡特一起學Python > 12.9 向列表增加元素的其他方法 >

12.9 向列表增加元素的其他方法

我們已經看到了如何使用 append 向列表增加元素。不過除此以外還有其他一些方法。實際上,向列表增加元素共有 3 種方法:appendextendinsert

  • 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 個位置上。它後面的每一個元素也都要向後移一個位置。

appendextend 的區別

有時 appendextend 看起來很類似,不過它們確實有一些區別。下面再回到原來的列表。首先,用 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 總是把新元素放在列表末尾。