Python追加列表是否重复最后一个元素?

2024-06-28 16:21:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我很难弄明白为什么我的“行”列表中的最后n个元素在item\u列表中重复出现?如果我的行是元组的列表:

(("ID 1", "info1", "description1"), ("ID 2", "info2", "description2"), ... ("ID 14", "info14", "description14"))

然后我试图用元组的“行”列表创建一个列表字典,使用以下代码:

^{pr2}$

因此,如果我的“rows”列表有14个元素,那么我将在字典的“item_list”列表中获得14次“rows”中的第14个元素(最后一个元素)。在

item_list = [{"ID": "ID 14", "Info": "info14", "Description": "description14"}, {"ID": "ID 14", "Info": "info14", "Description": "description14"} ... ] #14 times

“行”列表是元组的列表。如果我在附加到“项目列表”之前打印“信息”字典,我可以看到我的“信息”字典的每个不同迭代。在

有人有什么想法吗?提前谢谢。在


Tags: info信息id元素列表字典descriptionitem
2条回答

您只创建了一个info字典。每次追加info,都是在附加相同的字典。在随后的循环迭代中,使用info['ID'] == ...等修改info时,就是在修改这一个字典。任何引用它的地方都可以看到修改,包括item_list中的每个列表元素。在

要修复它,请将info = {}移到循环中。这样,您将在每次迭代中创建(并附加)一个字典。在

我想你想改变一下:

item_list = []
info = {} # <   Move this to inside the loop.

for row in rows:            
    itemId = row[0]
    itemDesc = row[10]

收件人:

^{2}$

相关问题 更多 >