python - python 中的嵌套 for 循环(列表理解);外循环不循环

标签 python nested list-comprehension

我正在尝试比较来自两个不同文件的列的数据。我尝试使用 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/

相关文章:

python - Scrapy 分页 XHR 400 错误请求

python - 交互模式下的子图中的 imshow

python - 比较数字在 Python 中给出错误的结果

python - 包含字典元素的字典理解

python - 将上传的文本文件中的数据提取到 django 数据库中

python - 将具有 NaN 的多列 Pandas 数据框转换为嵌套字典

c# - 在项目中嵌套项目?

Python 列表理解 : set all elements in an array to 0 or 1

Python:使用列表理解生成对称数组

python - 如何在 python 中模拟嵌套/多层返回对象