gpt4 book ai didi

python - Python 中 for 循环和打印列表的顺序是什么?

转载 作者:太空宇宙 更新时间:2023-11-03 16:49:45 24 4
gpt4 key购买 nike

我在下面有这个代码。第一条打印语句打印出:

['c','a','t','d','o','g','r','a','b','b','i','t']

正如预期

wlist = ['cat','dog','rabbit']
llist = [letter for word in wlist for letter in word]
tlist = []
print (llist)
for item in llist:
if not item in tlist:
tlist.append(item)
else:
llist.remove(item)
print (llist)

第二个,我希望它打印:

['c','a','t','d','o','g','r','b','i']

但它实际上打印:

['c','d','o','g','r','a','b','b','i','t']

我不明白为什么。我试图从 llist 中取出每个重复出现的字母。但第一个出现的地方似乎被去掉了,而两个 b 仍然保留着。谁能向我解释这是怎么发生的?

最佳答案

else:
llist.remove(item)

在这里,您将从正在迭代的列表中删除项目。这通常会导致很多问题,因为你让循环跳过元素。您应该始终避免改变正在迭代的列表。

如果完全删除 else 情况,您将获得所需的结果。毕竟,不需要修改源列表。

关于python - Python 中 for 循环和打印列表的顺序是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35971521/

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