Python ciclo Mientras la evaluación del estado
-
21-08-2019 - |
Pregunta
Decir que tengo el siguiente bucle:
i = 0
l = [0, 1, 2, 3]
while i < len(l):
if something_happens:
l.append(something)
i += 1
¿El len(i)
condición que está siendo evaluado en el bucle while que actualizarse cuando algo se anexa a l
?
Solución
Sí lo hará.
Otros consejos
Su código funcionará, pero utilizando un contador de bucles a menudo no se considera muy "Pythonic". Usando for
funciona igual de bien y elimina el contador:
>>> 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
Si necesita saber cómo "lejos" en la lista que se encuentre, puede utilizar 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
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow