2017-03-12 58 views
-2

我只是想在我的for循环中增加一个简单的计数器,但是这个函数总是返回54.我猜这是因为它将第二个计数器视为for循环内的局部变量。我怎样才能增加计数器?我觉得这应该是非常简单的,因为python应该是一种直截了当的语言。任何帮助将不胜感激!如何在for循环中增加计数器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 
+7

因为您在_each_迭代时将其分配给'counter = 54'? – myaut

回答

2

改为使用emumerate

for counter,line in enumerate(train_instances): 
    a,b = line.split(":") 

不要在循环增加任何东西,或在所有

2

您需要将计数器的初始申报外的for循环复位counter。由于它在里面,每次循环时,计数器都会重置为每次54次。

1

您应该在循环前初始化counter。您的当前代码在每个循环中将counter设置为54。

2

这样做是因为计数器变量位于循环体中,每次循环运行时,计数器变量都会重新声明并赋值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