我只是想在我的for循环中递增一个简单的计数器,但是这个函数总是返回54.我猜这样做是因为它将第二个计数器视为for循环中的局部变量。我怎样才能增加计数器?我觉得这应该是非常简单的,因为python应该是一种直截了当的语言。任何帮助将不胜感激!
for line in train_instances:
counter = 54
a = (line.split(":")[0])[i]
b = (line.split(":")[1])[1]
if ((int(a) == X) and (int(b) == Y)):
counter = counter + 1
return counter
答案 0 :(得分:3)
请改用emumerate
。
for counter,line in enumerate(train_instances):
a,b = line.split(":")
不要在循环中增加任何内容或重置counter
答案 1 :(得分:3)
您需要在for循环之外移动计数器的初始声明。因为它在里面,所以每次循环时,计数器每次都会重置为54。
答案 2 :(得分:3)
这样做是因为计数器变量在循环体中,每次循环运行时,计数器变量被重新声明并赋值54.为什么不移动计数器变量在for循环之上,所以它返回正确的值,如下面的代码所示。
counter = 54
for line in train_instances:
a = (line.split(":")[0])[i]
b = (line.split(":")[1])[1]
if ((int(a) == X) and (int(b) == Y)):
counter = counter + 1
return counter
答案 3 :(得分:2)
您应该在循环之前初始化counter
。您当前的代码会在每个循环中将counter
设置为54。