如何从列表删除或者去除元素呢?有 3 种方法:remove、del 和 pop。
用 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 -toplevelletters. 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) 会给出这个索引位置上的元素,而且会把它从列表中删除。