python - 遍历列表时如何删除元素

标签 python

我在如何在遍历列表时删除元素中读到这个: Remove elements as you traverse a list in Python

以此为例:

>>> colors=['red', 'green', 'blue', 'purple']
>>> filter(lambda color: color != 'green', colors)
['red', 'blue', 'purple']

但是如果我想删除属于字符串一部分的元素,我该怎么做呢? 即,如果我只输入“een”(只是颜色中“绿色”字符串元素的一部分?

最佳答案

使用 list comprehension而不是使用 filter():

>>> colors = ['red', 'green', 'blue', 'purple']
>>> [color for color in colors if 'een' not in color]
['red', 'blue', 'purple']

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

>>> filter(lambda color: 'een' not in color, colors)
['red', 'blue', 'purple']

关于python - 遍历列表时如何删除元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18040251/

相关文章:

python - wifijammer.py 问题 MacOSx

python - 如何使用 Moviepy 制作空白视频

python - 为什么如果 '0' 中的 id = "InlineQueryResultArticle"选择的元素不会触发 "on_chosen_inline_result"代码?

python - 您如何检查小部件是否在 Tkinter 中具有焦点?

python - 使用 ipython 和 %pdb 在调试 session 中访问变量

python - 如何在另一个进程中运行一些 python 代码?

Python:计算不同长度列表列表中第n个元素的平均值

python - 使用函数调用设置实例变量的正确方法是什么

Python被多个分隔符分割,包括空格?

python - 按包含字符串的最长元素过滤列表