Remove all occurrences of a value from a list? Remove all occurrences of a value from a list? python python

Remove all occurrences of a value from a list?


Functional approach:

Python 3.x

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

or

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

Python 2.x

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


You can use a list comprehension:

def remove_values_from_list(the_list, val):   return [value for value in the_list if value != val]x = [1, 2, 3, 4, 2, 2, 3]x = remove_values_from_list(x, 2)print x# [1, 3, 4, 3]


You can use slice assignment if the original list must be modified, while still using an efficient list comprehension (or generator expression).

>>> x = [1, 2, 3, 4, 2, 2, 3]>>> x[:] = (value for value in x if value != 2)>>> x[1, 3, 4, 3]