从包含特定字符的列表中删除元素

发布于 2021-01-29 16:16:14

我想删除包含(或不包含)一组特定字符的列表中的所有元素,但是我遇到了遍历列表并在我进行操作时删除元素的问题。下面给出了两个几乎相等的示例。如您所见,如果应该删除的两个元素紧挨着,那么第二个元素不会被删除。

我确定在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时是否有任何方法可以将迭代设置为一组。

关注者
0
被浏览
191
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    清单理解:

    >>> l = ['1', '32', '523', '336']
    >>> [ x for x in l if "2" not in x ]
    ['1', '336']
    >>> [ x for x in l if "2" in x ]
    ['32', '523']
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看