Python While Loop Condition Evaluation
-
21-08-2019 - |
Question
Say I have the following loop:
i = 0
l = [0, 1, 2, 3]
while i < len(l):
if something_happens:
l.append(something)
i += 1
Will the len(i)
condition being evaluated in the while loop be updated when something is appended to l
?
Solution
Yes it will.
OTHER TIPS
Your code will work, but using a loop counter is often not considered very "pythonic". Using for
works just as well and eliminates the counter:
>>> 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
If you need to know how "far" into the list you are, you can use 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
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow