如何用Pythonic的方式同时迭代两个列表?
假设我想逐行比较两个文件(将一个文件的第i行与另一个文件的第i行进行比较),我会像这样做:
file1 = csv.reader(open(filename1),...)
file2 = csv.reader(open(filename2),...)
for line1 in file1 and line2 in file2: #pseudo-code!
if line1 != line2:
print "files are not identical"
break
有一个Pythonic的方法可以实现这个吗?
编辑: 我没有使用文件处理程序,而是使用了CSV读取器 (csv.reader(open(file),...)
), zip()
似乎无法与其一起使用...
最终编辑: 像@Alex M.建议的那样,zip()
在第一次迭代时会将文件加载到内存中,所以在大文件上使用会有问题。在Python 2中,使用 itertools
可以解决这个问题。