Frage

Pylint sagen wir

W:  6: Using possibly undefined loop variable 'n'

Mit diesem Code:


iterator = (i*i for i in range(100) if i % 3 == 0)

for n, i in enumerate(iterator):
    do_something(i)

print n

, denn wenn der Iterator leer ist (zum Beispiel []) n nicht definiert ist, ok. Aber Ich mag diesen Trick. Wie es in einer sicheren Art und Weise zu benutzen?

Ich denke, dass len Verwendung (Liste (Iterator)) ist nicht die beste Wahl, weil Sie haben zwei Schleifen zu tun. Mit Hilfe eines Zählers, und es erhöht wird denke ich, es ist nicht sehr pythonic ist.

War es hilfreich?

Lösung

Haben Sie darüber nachgedacht lediglich n auf Keine Initialisierung vor der Schleife ausgeführt wird?

Andere Tipps

Definieren Sie einen Standardwert für n vor der for Anweisung:

iterator = (i*i for i in range(100) if i % 3 == 0)

n=None
for n, i in enumerate(iterator):
    do_something(i)

print n
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top