Python While Condition d'évaluation
-
21-08-2019 - |
Question
Dire que j'ai la boucle suivante:
i = 0
l = [0, 1, 2, 3]
while i < len(l):
if something_happens:
l.append(something)
i += 1
Est-ce que l'état len(i)
en cours d'évaluation dans la boucle while être mis à jour quand quelque chose est ajouté à l
?
La solution
Oui, il le fera.
Autres conseils
Votre code fonctionne, mais en utilisant un compteur de boucle est souvent considéré comme très « pythonique ». L'utilisation fonctionne aussi for
bien et élimine le compteur:
>>> 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 vous avez besoin de savoir comment « bien » dans la liste que vous êtes, vous pouvez utiliser 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
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow