2015-05-13 36 views
0

我希望变量genCounter在内部循环迭代完成时重置为零。但它返回genreSet的第一个值,并且不会继续增加genCounter变量。 kawa是一个genrator对象。由于事先..Python在嵌套循环中初始化变量

kawa = self.getFile() 
genList = [] 
genCounter = 0 
for gen in self.genreSet: 
    print(gen) 
    if genCounter == 0 : 
    for ids, row in enumerate(kawa): 
     self.genres = row['genres'] 
     self.genresList = self.genres.split('|') 
     for n in self.genresList: 
     if gen == n: 
      genCounter+=1 
    print(genCounter) 
    genCounter=0 

,这是结果

Documentary 
2471 
Sci-Fi 
0 
War 
0 
Horror 
0 
Musical 
0 
Children 
0 
Mystery 
0 
Drama 
0 
IMAX 
0 
Action 
0 
Adventure 
0 
Fantasy 
0 
Crime 
0 
Comedy 
0 
(no genres listed) 
0 
Animation 
0 
Thriller 
0 
Romance 
0 
Western 
0 
Film-Noir 
0 
+0

你只是想'genCounter = 0'而不是'如果genCounter == 0'? – Jasper

+0

我希望'genCounter = 0'每次在内部循环完成迭代_notice结束时进行一行编辑@ @Jasper – philo

回答

1

卡瓦是发电机对象。因此,如果你有

kawa = tuple(self.getFile()) 

取代的第一行代码,那么它可能会工作了成为第一个电话后空

enumerate(kawa) 

。 (或至少产生不同的bug;)

+0

谢谢你的完美确实@Pete – philo

+0

我一直在做这个bug的版本。你只需要更好地发现它 –