我得到了一个意想不到的结果从一个程序设计,使列表的偶数斐波那契数。代码中找到所有数字的部分工作正常,但是当它到达

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

最佳答案

您在修改列表时对其进行迭代。别那么做。

[x for x in fib_list if x % 2 == 0]

关于python - 修改列表中的斐波那契数列— Python,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17632029/

10-16 18:10