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?

Was it helpful?

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
scroll top