Python While 循环条件评估
假设我有一个这样的循环:
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
是的,它会的。