从Python列表中删除所有出现的值

问题:

在Python中,remove()将删除列表中第一次出现的值。
如何从列表中删除所有出现的值,而不排序列表?
这是我所想的。

>>> x = [1, 2, 3, 4, 2, 2, 3]
>>> def remove_values_from_list(the_list, val):
        while val in the_list:
            the_list.remove(val)
>>> remove_values_from_list(x, 2)
>>> x
[1, 3, 4, 3]

回答:

功能方法:
 2.X

>>> x = [1,2,3,2,2,2,3,4]
>>> filter(lambda a: a != 2, x)
[1, 3, 3, 4]

 3.X

>>> x = [1,2,3,2,2,2,3,4]
>>> list(filter((2).__ne__, x))
[1, 3, 3, 4]

要么

>>> x = [1,2,3,2,2,2,3,4]
>>> list(filter(lambda a: a != 2, x))
[1, 3, 3, 4]

 
 Code问答: codewenda.com
Stackoverflow:Remove all occurrences of a value from a Python list

发表评论

电子邮件地址不会被公开。 必填项已用*标注

2 + = 7