题
假设我有以下循环:
i = 0
l = [0, 1, 2, 3]
while i < len(l):
if something_happens:
l.append(something)
i += 1
会不会 len(i)
在 while 循环中评估的条件在附加某些内容时更新 l
?
解决方案
是的,它会。
其他提示
你的代码可以工作,但是使用循环计数器通常不被认为是非常“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
不隶属于 StackOverflow