在列表中修改Fibonacci系列 - Python

Cha*_*rew 2 python series fibonacci

我从一个旨在制作偶数斐波纳契数列表的程序中得到了意想不到的结果.找到所有数字的代码部分工作正常,但是当它到达时

if i % 2 != 0
    fib_list.remove(i)
Run Code Online (Sandbox Code Playgroud)

部分似乎出错了,因为它并没有取出所有奇数.以下是整个计划.我究竟做错了什么?

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
Run Code Online (Sandbox Code Playgroud)

zha*_*gyu 6

您正在修改它时迭代列表.不要那样做.

[x for x in fib_list if x % 2 == 0]
Run Code Online (Sandbox Code Playgroud)