我从一个旨在制作偶数斐波纳契数列表的程序中得到了意想不到的结果。找到所有数字的代码部分工作正常,但是当它到达
时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
答案 0 :(得分:6)
您正在修改它时迭代列表。不要这样做。
[x for x in fib_list if x % 2 == 0]