【发布时间】:2013-02-15 16:16:47
【问题描述】:
这段代码有潜在危险吗?会不会弄乱内部和外部的迭代?
for a in listA:
for b in listB:
if [... something...]:
... something else...
listA.remove(a)
listB.remove(b)
break
【问题讨论】:
-
是的,是的:它可能不会像你想要的那样运行。见stackoverflow.com/questions/1207406/…
-
也许可以试试这个:
for b in listb[:]:它只会复制列表,您可以从原始列表中删除。 -
是的,这听起来比必须通过列表推导来完成所有事情要好得多。我在上面的“...其他东西”中做了很多事情,压缩上面链接中建议的所有内容会有点麻烦。
标签: python list for-loop iterator