Python 删除列表中的元素

2014-05-07
本文发布至今已有8年零216天,可能不再适用,请谨慎对待。

要想删除列表中相同值的所有元素,本文介绍一种方法。

首先,list 自带的 remove() 方法只能删除第一次出现的位置(first occurrence)

>>> x = [1, 2, 1, 2, 1, 2]
>>> x.remove(2)
>>> x
[1, 1, 2, 1, 2]
>>> 

如果要全部删除list里面的某个元素,可以用列表解析方法(List comprehension):

>>> x = [1, 2, 1, 2, 1, 2]
>>> y = [i for i in x if i != 2] #删除全部2
>>> y
[1, 1, 1]
>>>

同样方法可以用来一次性删除多种元素:

>>> x = [1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3]
>>> y = [i for i in x if i != 2 and i != 3] #删除全部2和3
>>> y
[1, 1, 1, 1]
>>> 

删除一个范围:

>>> x = [1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3]
>>> y = [i for i in x if i < 2] #只保留小于2的
>>> y
[1, 1, 1, 1]
>>> 

甚至删除一个集合里的元素:

>>> x = [1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3]
>>> d = [2, 3]
>>> y = [i for i in x if i not in d] #不保留d中的元素 
>>> y
[1, 1, 1, 1]
>>>

捐助本站

为了保证阅读体验,本站不安放广告。但是,租用服务器和编写文章需要个人资金和时间的投入。

如果您觉得文章对您有用,请考虑捐助小站(金额不限),以期待更多原创文章。捐助记录

本站是个人网站,若无特别说明,文章均为原创,并采用 署名协议 CC-BY-NC 授权。
欢迎转载,惟请保留原文链接,且不得用于商业用途。