python列表pop函数


lst = ["s","ad","wqe","rer"]
for i in lst:
    lst.pop(0)
    print(lst)
print(lst)

为什么得到
['ad', 'wqe', 'rer']
['wqe', 'rer']
['wqe', 'rer']
而不是删除了列表里面所有的元素,最后给我输出一个空列表?

因为每次pop列表长度都会变的,循环却是一个一个往后的,第二次pop后列表就只剩两个元素了,循环拿不到第三个元素的值所以停了

在循环里面,不要随便删除列表元素,你一删除下次循环的时候,整体元素索引会重新排列,所以会出现你当前这样的结果,这种问题处理方法是建一个新列表,通过循环把你需要的数据填进新列表就行。有帮助的话采纳一下哦!

pop对列表直接生效,list.pop()用伪代码解释就是:list=list.pop(),自带的赋值。