Python While Loop Condizione valutazione
-
21-08-2019 - |
Domanda
Dire che ho il seguente ciclo:
i = 0
l = [0, 1, 2, 3]
while i < len(l):
if something_happens:
l.append(something)
i += 1
Sarà il len(i)
condizioni in corso di valutazione nel ciclo while essere aggiornato quando qualcosa viene aggiunto a l
?
Soluzione
Sì lo farà.
Altri suggerimenti
Il codice funzionerà, ma utilizzando un contatore del ciclo non è spesso considerato molto "divinatorio". Utilizzando for
funziona altrettanto bene ed elimina il contatore:
>>> foo = [0, 1, 2]
>>> for bar in foo:
if bar % 2: # append to foo for every odd number
foo.append(len(foo))
print bar
0
1
2
3
4
Se avete bisogno di sapere come "lontano" nella lista siete, è possibile utilizzare enumerate
:
>>> foo = ["wibble", "wobble", "wubble"]
>>> for i, bar in enumerate(foo):
if i % 2: # append to foo for every odd number
foo.append("appended")
print bar
wibble
wobble
wubble
appended
appended
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow