gpt4 book ai didi

python - For 循环不会遍历所有对象

转载 作者:太空宇宙 更新时间:2023-11-04 07:00:37 25 4
gpt4 key购买 nike

为什么这个 for 循环没有遍历所有项目:

 temp = 0

for br in my_list :
temp +=1
#other code here
#my list is not used at all, only br is used inside here
my_list.remove(br)

print temp
assert len(my_list) == 0 , "list should be empty"

因此,断言触发。然后我添加了临时计数器,我确实看到尽管我的列表有 202 个元素,但 for 循环只处理其中的 101 个。这是为什么?

最佳答案

您不应该从正在迭代的列表中删除。如果你想删除东西,请使用它

while list:
item = list.pop()
#Do stuff

编辑:如果您想了解更多关于 pop() 的信息,请查看 python doc

如果顺序很重要,请使用 pop(0)pop() 默认删除最后一项,如果你想按顺序遍历列表,你应该使用 pop(0) 删除第一个(索引 0)项并将其返回。

Edit2:感谢用户Vincent对于 while list 建议。

关于python - For 循环不会遍历所有对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30866217/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com