讀古今文學網 > 父與子的編程之旅:與小卡特一起學Python > 12.10 從列表刪除元素 >

12.10 從列表刪除元素

如何從列表刪除或者去除元素呢?有 3 種方法:removedelpop

remove 刪除元素

remove 會從列表中刪除你選擇的元素,把它丟掉:

>>> letters = ['a', 'b', 'c', 'd', 'e']>>> letters.remove('c')>>> print letters['a', 'b', 'd', 'e']  

你不需要知道這個元素在列表中的具體位置,只需要知道它確實在列表中(可以是任何位置)。如果你想刪除的東西根本不在列表中,就會得到錯誤消息:

>>> letters.remove('f')Traceback (most recent call last):  File "<pyshell#32>", line 1, in <module>    letters. remove('f')ValueError: list.remove(x): x not in list  

那麼怎麼才能知道列表中是否包含某個元素呢?後面就要講到。先來看另外兩種從列表中刪除元素的方法。

del 刪除

del 允許利用索引從列表中刪除元素,如下所示:

>>> letters = ['a', 'b', 'c', 'd', 'e']>>> del letters[3]>>> print letters['a', 'b', 'c', 'e']  

在這裡,我們刪除了第 4 個元素(索引 3),也就是字母 d。

pop 刪除元素

pop 從列表中取出最後一個元素交給你。這說明,你可以為它指派一個名字,比如:

>>> letters = ['a', 'b', 'c', 'd', 'e']>>> lastLetter = letters.pop>>> print letters['a', 'b', 'c', 'd']>>> print lastLettere  

使用 pop 時還可以提供一個索引,如:

>>> letters = ['a', 'b', 'c', 'd', 'e']>>> second = letters.pop(1)>>> print secondb>>> print letters['a', 'c', 'd', 'e']  

在這裡我們彈出了第 2 個字母(索引 1),也就是 b。彈出的元素賦給 second,而且會從 letters 刪除。

括號裡沒有提供參數時,pop 會返回最後一個元素,並把它從列表中刪除。如果在括號裡放入一個數,pop(n) 會給出這個索引位置上的元素,而且會把它從列表中刪除。