Python 3.x 为什么这个代码的输出只有1到121之间的偶数?
它不应该是空的吗?我真的不明白这一点。你通常不想修改你正在迭代的列表,因为你会得到奇怪的结果,就像你遇到的那样 你有一个数字列表,1-121。如果删除第一个,内存中的所有内容都会向下移动,因此Python 3.x 为什么这个代码的输出只有1到121之间的偶数?,python-3.x,Python 3.x,它不应该是空的吗?我真的不明白这一点。你通常不想修改你正在迭代的列表,因为你会得到奇怪的结果,就像你遇到的那样 你有一个数字列表,1-121。如果删除第一个,内存中的所有内容都会向下移动,因此2现在处于零位。执行范围2-122,您只能得到奇数 A=list(range(1,121)) for i in A: A.remove(i) print(A) 无效代码,根本不运行。@JohnZwinck当我编辑它时,我犯了一个错误。现在,它应该不会修改您正在迭代的列表。那很糟糕,我知道这很糟糕。
2
现在处于零位。执行范围2-122
,您只能得到奇数
A=list(range(1,121))
for i in A:
A.remove(i)
print(A)
无效代码,根本不运行。@JohnZwinck当我编辑它时,我犯了一个错误。现在,它应该不会修改您正在迭代的列表。那很糟糕,我知道这很糟糕。但如果你不告诉他为什么,他就不会明白为什么这样不好。美国千禧一代需要知道原因
x = [1, 2, 3, 4, 5, 6]
for i in x:
x.remove(i)
#first time through x = [2, 3, 4, 5, 6]
# ^ i is still pointing here though and the next time
# through it will be pointing at 3 (i = 2)