2

偶数のフィボナッチ数のリストを作成するように設計されたプログラムから、予期しない結果が得られました。すべての数字を見つけるコードの部分は正常に動作しますが、

if i % 2 != 0
    fib_list.remove(i)

すべての奇数を取り出さないため、何かがうまくいかないようです。以下、プログラム全体です。私は何を間違っていますか?

fib_list = [1, 2, 3]

for i in range(4, 4000001):
    if (i - fib_list[-1] - fib_list[-2]) == 0:
        fib_list.append(i)

print fib_list

for i in fib_list:
    if i % 2 != 0:
        fib_list.remove(i)

print fib_list
4

1 に答える 1

6

変更中にリストを反復処理しています。そうしないでください。

[x for x in fib_list if x % 2 == 0]
于 2013-07-13T16:26:39.323 に答える