2.11.3 删除元素

list元素的删除有两种不同的情况。

第一种是根据指定的位置删除list中的元素,这种情况我们用pop方法,弹出队列中指定位置的元素。如果不指定位置,最后一个元素会被弹出。


>>> cities = ['Beijing', 'Shanghai', 'Shenzhen', 'Wuhan']
>>> cities
['Beijing', 'Shanghai', 'Shenzhen', 'Wuhan']

>>> city = cities.pop(1)
>>> city
'Shanghai'
>>> cities
['Beijing', 'Shenzhen', 'Wuhan']

>>> city = cities.pop()
>>> city
'Wuhan'
>>> cities
['Beijing', 'Shenzhen']

第二种情况是根据指定的值去删除list中的元素,在这种情况下,我们用remove方法。


>>> nba_mvps = ['Harden', 'Westbrook', 'Curry', 'Curry', 'KD', 'James', 'James', 
    'Rose', 'James', 'James']
>>> nba_mvps.remove('James')
>>> nba_mvps
['Harden', 'Westbrook', 'Curry', 'Curry', 'KD', 'James', 'Rose', 'James', 'James']

使用remove方法的时候,如果list中存在多个元素与指定的值相等,只有最靠前的那个元素会被移除掉,这与我们的预期可能有些差异。如果想把所有匹配的值都移除掉,我们可以用循环(后续章节会详细介绍)来完成。


>>> nba_mvps = ['Harden', 'Westbrook', 'Curry', 'Curry', 'KD', 'James', 'James', 
    'Rose', 'James', 'James']
>>> while 'James' in nba_mvps:
...     nba_mvps.remove('James')

>>> nba_mvps
['Harden', 'Westbrook', 'Curry', 'Curry', 'KD', 'Rose']