Cómo incrementa el contador en bucle for de python?

Sólo estoy tratando de incrementar un simple contador en mi bucle for, pero esta función siempre devuelve 54. Supongo que lo hace porque ve en el segundo contador como una variable local dentro del bucle for. ¿Cómo puedo incrementar el contador?? Me siento como este debe ser realmente sencillo, ya que python es supuestamente un sencillo lenguaje. Cualquier ayuda sería muy apreciada!

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
  • debido a que se asigna a counter = 54 en cada iteración?
InformationsquelleAutor Reef Rashid | 2017-03-12

4 Kommentare

  1. 3

    Uso emumerate lugar .

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

    No incrementan nada en el bucle o restablecer counter en todos los

  2. 3

    Usted necesita para mover la declaración inicial del contador fuera del bucle for. Desde su interior, cada vez que el bucle a través de, el contador está consiguiendo restablecer a 54 cada momento.

  3. 3

    Lo hace porque la variable de contador está en el cuerpo del bucle y cada vez que el bucle se ejecuta, la variable contador es volver a declarar y se le asigna el valor de 54. ¿Por qué no se mueve la variable de contador justo por encima del bucle for para que devuelva el valor correcto, como en el siguiente código.

    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
  4. 2

    Hay que inicializar counter antes de que el bucle. Su actual código establece counter a 54 de cada bucle.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea