gpt4 book ai didi

python-3.x - 为什么我从列表开头删除偶数的代码不起作用?

转载 作者:行者123 更新时间:2023-12-03 08:39:20 25 4
gpt4 key购买 nike

def delete_starting_evens(lst):
for i in lst:
if i%2==0:
lst.remove(i)
else:
break
return lst
给定的代码会产生意外的结果,但是我无法从输出中找出问题所在。

最佳答案

那是因为您要抑制要循环访问的列表项。因此,它抑制了一半的物品。例如,如果您在列表[2, 2, 4, 6, 1]上调用函数,它将删除列表的前2个,然后移至lst[1]为4(删除前2个),然后删除该列表,然后移至lst[2]现在为1并终止。结果列表将为[2, 6, 1]修改要迭代的结构是非常不好的做法。在这里,您应该首选while循环:

def delete_starting_evens(lst):
while len(lst) > 0 and lst[0]%2==0:
lst.remove(lst[0])
return lst

l = [2, 2, 4, 6, 1]
delete_starting_evens(l)
print(l)

关于python-3.x - 为什么我从列表开头删除偶数的代码不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63193121/

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