[英]Python: How to correctly increment this for loop with a counter variable?
[英]How to increment counter in for loop for python?
我只是想在我的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
使用emumerate
代替。
for counter,line in enumerate(train_instances):
a,b = line.split(":")
不要在循环中增加任何内容或根本不重置counter
您需要将计数器的初始声明移到for循环之外。 由于它在内部,因此每次循环访问时,计数器都会每次重置为54。
这样做是因为计数器变量位于循环的主体中,并且每次循环运行时,都必须重新声明计数器变量并为其分配值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
您应该在循环之前初始化counter
。 您当前的代码将每个循环的counter
设置为54。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.