所以我以这种方式迭代列表中的项目:

for virus in viruses:
    do stuff
    remove virus

如果我有索引,我就可以做 delvirus[i],而且我显然可以调整代码来做类似 for index in range(0, len(viruses)) 的事情,但是对于我想在 for 中做的其他事情,这开始使代码很快变得丑陋环形。无论如何,我可以根据我当前正在迭代的病毒名称删除吗?

最佳答案

这个怎么样:

for virus in viruses[:]:
    # do stuff
    viruses.remove(virus)  # remove "virus" from the original list
viruses[:] 创建我们的 viruses 列表的副本。请注意,您还可以使用 list(oldlist) 来复制列表(我发现这更具可读性,但两者都可以)。您可以在 python here 中阅读有关列表的更多信息。

关于python - 从没有索引的列表中删除元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12698915/

10-11 06:29