Ответ 1
Если вы хотите изменить список на месте,
a[:] = [x for x in a if x != [1, 1]]
Допустим, у меня есть список a
:
a = [[1, 1], [2, 2], [1, 1], [3, 3], [1, 1]]
Есть ли функция, которая удаляет все экземпляры [1, 1]
?
Если вы хотите изменить список на месте,
a[:] = [x for x in a if x != [1, 1]]
Используйте понимание списка:
[x for x in a if x != [1, 1]]
Google находит Удалить все элементы в списке, который включает в себя драгоценные камни, такие как
from functools import partial
from operator import ne
a = filter(partial(ne, [1, 1]), a)
def remAll(L, item):
answer = []
for i in L:
if i!=item:
answer.append(i)
return answer
Вот более простая альтернатива Алексу Мартелли:
a = [x for x in a if x != [1,1]]
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)
filter([1,1].__ne__,a)
чистая версия 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