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 回答