Python While循环条件求值
假设我有以下循环:Python While循环条件求值,python,while-loop,Python,While Loop,假设我有以下循环: i = 0 l = [0, 1, 2, 3] while i < len(l): if something_happens: l.append(something) i += 1 i=0 l=[0,1,2,3] 而我
i = 0
l = [0, 1, 2, 3]
while i < len(l):
if something_happens:
l.append(something)
i += 1
i=0
l=[0,1,2,3]
而我
在while循环中计算的
len(i)
条件是否会在向l
追加内容时更新?是的。您的代码可以工作,但使用循环计数器通常被认为不是很“pythonic”。将用于
也同样有效,并消除了计数器:
>>> 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
如果您需要知道自己在列表中的“距离”,您可以使用枚举
:
>>> 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
如果这是您的代码,它将永远不会退出,原因不同:在循环开始时,i