繁体   English   中英

没有在python 2.7.2中进入for循环

[英]Not entering the for loop in python 2.7.2

这是我用来操作CSV文件的代码。 它没有进入第二和第三循环。

import csv
f=open("/Users/shivendraagrawal/Desktop/Training Dataset.csv","rU")
cr = csv.reader(f)
mapping={}
out={}
i=0
for row in cr:
      i=i+1
      mapping[row[0]]=0
      out[row[0]]=0
for row in cr:
      print "hi"
      mapping[row[0]]=mapping[row[0]]+row[5]
      if row[6]=="TRUE":
            out[row[0]]=out[row[0]]+1

for row in cr:
      print mapping[row[0]] +'  '+out[row[0]]

print i   

您多次使用了迭代器,但是迭代器仅是单次使用。

读取时只需复制cr内容,然后进行遍历:

cr_copy = [c for c in cr]
for row in cr_copy:

或者,还有一种更Python化的方式可以做到这一点:您可以使用itertools.tee请参见本帖子 )将迭代器克隆三遍:

import itertools

cr1, cr2 = itertools.tee(cr)
for row in cr1:
     # first loop

for row in cr2:
     # secondloop

在第一个和第二个循环之后(例如在第二个循环之前f.seek(0)使用f.seek(0)快退:

f.seek(0)
for row in cr:
    # loop code 

阅读: 从Python文档代码

试试看!!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM