Wie Inkrement-Zähler in for-Schleife für python?
Ich versuche nur zu Inkrementieren eines einfachen counter in meiner for-Schleife, aber diese Funktion gibt immer 54. Ich vermute, er tut dies, denn es sieht dem zweiten Zähler als lokale variable innerhalb der for-Schleife. Wie kann ich die Schrittweite der Zähler?? Ich glaube, das sollte sehr einfach, da python ist vermutlich ein straight-forward-Sprache. Jede Hilfe wäre sehr geschätzt werden!
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
- da weisen Sie es zu
counter = 54
bei jeder iteration?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden
emumerate
statt .Nicht Schrittweite alles in der Schleife oder reset
counter
überhauptMüssen Sie zu bewegen, die erste Deklaration der counter außerhalb der for-Schleife. Da es im inneren, jedes mal, wenn Sie eine Schleife durch, wird der Zähler immer zurückgesetzt 54 jeder Zeit.
Es ist so, weil die Zähler-variable ist in der Körper der Schleife und jedes mal, wenn die Schleife ausgeführt wird, wird der Zähler-variable neu deklariert und mit dem Wert 54. Warum gehst du nicht verschieben Sie die Zähler-variable nur über die for-Schleife so gibt es der richtige Wert ist, wie im code unten.
Sollten Sie initialisieren
counter
vor der Schleife. Ihre aktuelle code-setscounter
54 jeder Schleife.