次のループがあるとします。
i = 0
l = [0, 1, 2, 3]
while i < len(l):
if something_happens:
l.append(something)
i += 1
len(i)
while ループで評価される条件は、何かが追加されたときに更新されl
ますか?
次のループがあるとします。
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