Python While 循环条件评估

2 投票
2 回答
5195 浏览
提问于 2025-04-15 11:35

假设我有一个这样的循环:

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

在这个循环的条件中,len(i)的值会在往l里添加新东西时自动更新吗?

2 个回答

3

你的代码是可以运行的,但使用循环计数器通常被认为不是很“Python风格”。用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
14

是的,它会的。

撰写回答