>>> x = [1,2,3,2,2,2,3,4] >>> list(filter(lambda a: a != 2, x)) [1, 3, 3, 4]
или
>>> [i for i in x if i != 2]
Python 2.x
>>> x = [1,2,3,2,2,2,3,4] >>> filter(lambda a: a != 2, x) [1, 3, 3, 4]
Ответ 2
Вы можете использовать понимание списка:
defremove_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]
Ответ 3
Вы можете использовать назначение фрагмента, если исходный список должен быть изменен, при этом по-прежнему используя эффективное понимание списка (или выражение генератора).
>>> x = [1, 2, 3, 4, 2, 2, 3] >>> x[:] = (value for value in x if value != 2) >>> x [1, 3, 4, 3]
Ответ 4
Повторяем решение первого поста более абстрактным способом:
>>> x = [1, 2, 3, 4, 2, 2, 3] >>> while2in x: x.remove(2) >>> x [1, 3, 4, 3]