Python在嵌套循环中初始化变量
问题描述:
我希望变量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
答
卡瓦是发电机对象。因此,如果你有
kawa = tuple(self.getFile())
取代的第一行代码,那么它可能会工作了成为第一个电话后空
enumerate(kawa)
。 (或至少产生不同的bug;)
+0
谢谢你的完美确实@Pete – philo
+0
我一直在做这个bug的版本。你只需要更好地发现它 –
你只是想'genCounter = 0'而不是'如果genCounter == 0'? – Jasper
我希望'genCounter = 0'每次在内部循环完成迭代_notice结束时进行一行编辑@ @Jasper – philo