循环条件评估时的Python

时间:2009-05-14 17:17:07

标签: python while-loop

说我有以下循环:

i = 0
l = [0, 1, 2, 3]
while i < len(l):
    if something_happens:
         l.append(something)
    i += 1

len(i)附加某些内容时,是否会更新在while循环中评估的l条件?

2 个答案:

答案 0 :(得分:14)

是的。

答案 1 :(得分:3)

您的代码可以正常工作,但使用循环计数器通常不会被视为非常“pythonic”。使用for同样有效并消除了计数器:

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

如果您需要知道列表中的“远”,您可以使用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