H=[1,2,3,4,5,6,7,8]
for h in H:
print h
if h%2==1:
H.remove(h)
print H
输出:
1
[2, 3, 4, 5, 6, 7, 8]
3
[2, 4, 5, 6, 7, 8]
5
[2, 4, 6, 7, 8]
7
[2, 4, 6, 8]
因此,我只是在尝试在同一列表的for循环内修改列表的可能性,尽管列表本身的行为与我的想法相同,但我不明白为什么数字2,4,6,8没有被打印。谁能解释?
答案 0 :(得分:0)
这是因为您要在遍历列表时对其进行修改。例如,在您的第一次迭代中,您将删除元素1
,而在您的下一次迭代中,索引为2
。但是在修改后的列表中,索引位置2
中的元素为3
,因为您删除了元素1
。