0

我刚刚开始使用 Python 进行数据操作,并且遇到了一对不迭代的嵌套 for 循环的问题。目标是将 csv 数据文件中的行与列表中的项目匹配,但在对列表中第一个项目的数据行执行操作后,它会停止。

问题的一个例子是:

with open(infiles[3], 'rU') as inf3:
    firmyeardata3=csv.reader(inf3, dialect='excel')
    for i in firmyearlist:
        firm=firmyeardatadict[i][2]
        for row in firmyeardata3:
            if row[1]==firm:
                print firm    

这段代码没有遍历整个列表,而是给了我:

firmx
firmx
firmx
firmx
firmx
firmx
None

看起来像是一个明显的None问题,但我不知道它来自哪里以及为什么它会中断循环。

4

1 回答 1

1

您只能读取一次csv.reader()对象(顺便说一下,就像任何其他文件一样)。这意味着在第一个for row in firmyeardata3:循环完成后,没有什么可以迭代了。

您可能希望将 CSV 文件读入列表,然后反复迭代。

于 2013-09-29T20:41:48.950 回答