Python 在嵌套循环中初始化变量

Python initializing variable in a nested loop

我希望当内部循环的迭代完成时,变量 genCounter 重置为零。然而它 returns genreSet 的第一个值并且不会进一步增加 genCounter 变量。 kawa 是一个生成器对象。提前致谢..

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

kawa 是一个生成器对象。因此,它在第一次调用

后变为空
enumerate(kawa)

如果将第一行代码替换为

kawa = tuple(self.getFile())

那么它可能会起作用。 (或者至少产生一个不同的错误;)