为什么会剩下一个a呢,a难道不在["a"]里面吗?

为什么会剩下一个a呢,a难道不在["a"]里面吗?不理解为何最后一个a没有被移除。

img

img




如图解释,再删掉第一个“a”后,后面的元素会前移,指针下一次会指向新列表的第二个元素(即初始状态的第三个空格),从而初始状态的第二个空格被跳过了,所以初始状态的第二个元素未被删除
下图是我做的实验,按上面的解释,第一个位置和第三个位置的“a”被删除,第二个和第四个位置的“a”则被留下来了

img

望采纳!

题主你好, list.remove(obj)并不会移除列表中某个值的全部匹配项,而是移除列表中某个值的第一个匹配项。
如果我的回答对你有帮助,还望采纳!

for循环是在names里面遍历的,在第一次names.remove(name)之后,names里面就只剩下了一个元素,所以不会再进行第二次循环,于是还剩一个a
如果问题得到解决的话请点 采纳~~

再做个实验就明白了,你看迭代了几次,并且每次那个a是哪个元素

aa = [1, 2, 3, 4, 5, 6]
i=1
for a in aa:
    aa.pop(0)#每次删除第一个位置
    print(f"删除第{i}个",f"删除的是{a}")
    i+=1