2

次のループがあるとします。

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

len(i)while ループで評価される条件は、何かが追加されたときに更新されlますか?

4

2 に答える 2

14

はい、そうなります。

于 2009-05-14T17:19:32.987 に答える
3

コードは機能しますが、ループ カウンターを使用することは、多くの場合、あまり「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
于 2009-05-14T17:40:31.957 に答える