我试图比较来自两个不同文件的列的数据.我试图使用for,现在是列表理解.
问题是外部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 ]
解决方法:
外部是迭代的.但是,内循环仅在外循环的第一次迭代中执行 – 然后到达newInv的结尾.
了解newInv不是可以多次迭代的集合.它是一个只能使用一次的迭代器.试试这个(未经测试):
newInv = list(csv.reader(open("new.csv", "r")))
origInv = list(csv.reader(open("old.csv", "r")))
它会将数据复制到内存中,并允许您多次迭代.