gpt4 book ai didi

python - 为什么它不从列表中删除所有零

转载 作者:行者123 更新时间:2023-12-01 21:31:40 24 4
gpt4 key购买 nike

我已经很长时间没有用Python编码了,有时我很困惑。当我有一个数组时,例如: arr = [0, 1, 0, 3, 12]并说:

for i in arr:
if i == 0:
arr.remove(i)

它正在按照我想要的方式删除两个零。但如果数组是这样的:arr = [0, 0, 1],用上面的方法,就会剩下一个0。那么有人可以解释一下为什么会有这样的行为吗?我没有找到对此的解释。

最佳答案

最好尝试一下:

arr = [n for n in arr if n != 0]

这使用列表理解,它比您正在做的事情安全得多:在迭代的同时删除元素是一个坏主意,您会遇到诸如元素未删除之类的问题。

这是因为列表大小减小了,遍历列表的迭代器会发现比迭代开始时预期的元素少。

关于python - 为什么它不从列表中删除所有零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61043172/

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