如何在for循环中为python增加计数器?

时间:2017-03-12 22:03:48

标签: python loops for-loop count

我只是想在我的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

4 个答案:

答案 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。