一个有趣的函数

1
2
3
4
def (nums):
for x in nums:
nums.remove(x)
print(x, nums)

可能我们期望的结果是

1
2
3
4
5
0 [1, 2, 3, 4]
1 [2, 3, 4]
2 [3, 4]
3 [4]
4 []

然而实际的输出为

1
2
3
0 [1, 2, 3, 4]
2 [1, 3, 4]
4 [1, 3]

这说明了迭代时会记录迭代的索引,随着迭代索引值会递增。