迭代列表的同时删除项目可能会带来挑战。一种常见的情况是尝试根据特定标准删除项目。在这种情况下,确定适当的项目删除方法至关重要。
考虑这两种有效的方法:
创建一个新的使用 list 只包含所需元素的列表理解:
somelist = [x for x in somelist if not determine(x)]
或者,通过分配给其切片来直接修改现有列表:
somelist[:] = [x for x in somelist if not determine(x)]
如果对某个列表的多个引用,此方法是有利的存在并需要反映更改。
Itertools 也提供了一种便捷的方法:
Python 2:
from itertools import ifilterfalse somelist[:] = ifilterfalse(determine, somelist)
Python 3:
from itertools import filterfalse somelist[:] = filterfalse(determine, somelist)
以上是如何在 Python 迭代过程中有效地从列表中删除项目?的详细内容。更多信息请关注PHP中文网其他相关文章!