gpt4 book ai didi

python - 如何删除列表中除 1 个数字(Python)之外的所有数字?

转载 作者:行者123 更新时间:2023-12-02 16:21:01 29 4
gpt4 key购买 nike

我希望我的代码删除列表中除特定数字(3)之外的所有数字。相反,它会删除某些数字,但其中大部分仍保留在列表中。

myList = [0,1,2,3,4,5]
i = 0
for i in myList:
print(i)
if i != 3:
myList.remove(i)
else:
continue
i += 1
print(myList)

最佳答案

您遇到了一些问题。首先,您在尝试处理列表时尝试就地修改列表。您可以通过更改来解决此问题:

for i in myList:

到:

for i in myList[:]:

这将使您的代码给出所需的结果。它创建了一个列表的“副本”以供迭代,因此您可以修改原始列表而不会弄乱您的迭代循环。

另一件需要注意的事情是,您在 for 循环中为 i 分配了一个值,但是随后您在 if-else< 之后手动更改了它 block 。当您返回到循环顶部时,该更改将被丢弃。

此外,您else: continue 阻止递增i,但这没关系,因为递增的值无论如何都会被丢弃。

所以...注释掉一些不必要的东西可以得到:

myList = [0,1,2,3,4,5]
# i = 0
for i in myList[:]:
print(i)
if i != 3:
myList.remove(i)
# else:
# continue
# i += 1
print(myList)

关于python - 如何删除列表中除 1 个数字(Python)之外的所有数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65515132/

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