Как удалить все экземпляры элемента из списка в Python? Допустим, у меня есть список a: a = [[1, 1], [2, 2], [1, 1], [3, 3], [1, 1]] Есть ли функция, которая удаляет все экземпляры [1, 1]? Ответ 1 Если вы хотите изменить список на месте, a[:] = [x for x in a if x != [1, 1]] Ответ 2 Используйте понимание списка: [x for x in a if x != [1, 1]] Ответ 3 Google находит Удалить все элементы в списке, который включает в себя драгоценные камни, такие как from functools import partial from operator import ne a = filter(partial(ne, [1, 1]), a) Ответ 4 def remAll(L, item): answer = [] for i in L: if i!=item: answer.append(i) return answer Ответ 5 Вот более простая альтернатива Алексу Мартелли: a = [x for x in a if x != [1,1]] Ответ 6 new_list = filter(lambda x: x != [1,1], a) Или как функция: def remove_all(element, list): return filter(lambda x: x != element, list) a = remove([1,1],a) Или более общий: def remove_all(elements, list): return filter(lambda x: x not in elements, list) a = remove(([1,1],),a) Ответ 7 filter([1,1].__ne__,a) Ответ 8 чистая версия python без модулей, или нет версии списка comp (проще понять?) >>> x = [1, 1, 1, 1, 1, 1, 2, 3, 2] >>> for item in xrange(x.count(1)): ... x.remove(1) ... >>> >>> x [2, 3, 2] можно легко превратить в def. def removeThis(li,this): for item in xrange(li.count(this)): li.remove(this) return li
Ответ 3 Google находит Удалить все элементы в списке, который включает в себя драгоценные камни, такие как from functools import partial from operator import ne a = filter(partial(ne, [1, 1]), a)
Ответ 6 new_list = filter(lambda x: x != [1,1], a) Или как функция: def remove_all(element, list): return filter(lambda x: x != element, list) a = remove([1,1],a) Или более общий: def remove_all(elements, list): return filter(lambda x: x not in elements, list) a = remove(([1,1],),a)
Ответ 8 чистая версия python без модулей, или нет версии списка comp (проще понять?) >>> x = [1, 1, 1, 1, 1, 1, 2, 3, 2] >>> for item in xrange(x.count(1)): ... x.remove(1) ... >>> >>> x [2, 3, 2] можно легко превратить в def. def removeThis(li,this): for item in xrange(li.count(this)): li.remove(this) return li