我正在尝试比较来自两个不同文件的列的数据。我尝试使用 for
,现在使用 list comprehension
。
问题是外部 for 循环没有被迭代,但是内部循环被迭代了。我已经单独检查过,迭代就好了;但是一旦我嵌套,我就会遇到这个问题。我对此有什么遗漏吗?
import csv
newInv = csv.reader(open("new.csv", "r"))
origInv = csv.reader(open("old.csv", "r"))
print [ oldrow[5] + " " + newrow[3] for oldrow in origInv for newrow in newInv ]
最佳答案
请注意,在您的解决方案中,for 循环是嵌套的,因此这就是为什么一个循环似乎在迭代而另一个似乎没有。
同时获取两个迭代器的一个元素需要使用的是itertools.izip
:
[ oldrow[5] + " " + newrow[3]
for oldrow, newrow in itertools.izip(origInv, newInv)]
关于python - python 中的嵌套 for 循环(列表理解);外循环不循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8595803/