gpt4 book ai didi

python - 如何在迭代时从列表中删除项目?

转载 作者:太空宇宙 更新时间:2023-11-03 19:45:46 25 4
gpt4 key购买 nike

我正在Python中迭代元组列表,并尝试在它们满足特定条件时删除它们。

for tup in somelist:
if determine(tup):
code_to_remove_tup

我应该用什么来代替 code_to_remove_tup ?我不知道如何以这种方式删除该项目。

最佳答案

您可以使用 list comprehension创建一个仅包含您不想删除的元素的新列表:

somelist = [x for x in somelist if not determine(x)]

或者,通过分配给切片 somelist[:],您可以更改现有列表以仅包含您想要的项目:

somelist[:] = [x for x in somelist if not determine(x)]

如果有其他对 somelist 的引用需要反射(reflect)更改,则此方法可能很有用。

除了理解之外,您还可以使用itertools。在 Python 2 中:

from itertools import ifilterfalse
somelist[:] = ifilterfalse(determine, somelist)

或者在 Python 3 中:

from itertools import filterfalse
somelist[:] = filterfalse(determine, somelist)

关于python - 如何在迭代时从列表中删除项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60148358/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com