如何遍历列表时删除元素

mic*_*ael 2 python

我在遍历列表时如何删除元素时读到了这一点: 在Python中遍历列表时删除元素

以此为例:

>>> colors=['red', 'green', 'blue', 'purple']
>>> filter(lambda color: color != 'green', colors)
['red', 'blue', 'purple']
Run Code Online (Sandbox Code Playgroud)

但是,如果我想删除元素,如果它是字符串的一部分,我怎么能这样做?即如果我输入'een'(只是颜色中'绿色'字符串元素的一部分,我想过滤'绿色'?

Ter*_*ryA 5

使用列表推导而不是使用filter():

>>> colors = ['red', 'green', 'blue', 'purple']
>>> [color for color in colors if 'een' not in color]
['red', 'blue', 'purple']
Run Code Online (Sandbox Code Playgroud)

或者,如果您想继续使用filter():

>>> filter(lambda color: 'een' not in color, colors)
['red', 'blue', 'purple']
Run Code Online (Sandbox Code Playgroud)