从包含特定字符的列表中删除元素
我想删除包含(或不包含)一组特定字符的列表中的所有元素,但是我遇到了遍历列表并在我进行操作时删除元素的问题。下面给出了两个几乎相等的示例。如您所见,如果应该删除的两个元素紧挨着,那么第二个元素不会被删除。
我确定在python中有一种非常简单的方法可以做到这一点,所以如果有人知道它,请帮帮我-
我目前正在制作整个列表的副本并遍历一个列表,并删除另一个列表中的元素…不我认为这是一个很好的解决方案
>>> l
['1', '32', '523', '336']
>>> for t in l:
... for c in t:
... if c == '2':
... l.remove(t)
... break
...
>>> l
['1', '523', '336']
>>> l = ['1','32','523','336','13525']
>>> for w in l:
... if '2' in w: l.remove(w)
...
>>> l
['1', '523', '336']
弄清楚了:
>>> l = ['1','32','523','336','13525']
>>> [x for x in l if not '2' in x]
['1', '336']
仍然想知道在使用x in l时是否有任何方法可以将迭代设置为一组。