我很难弄清楚为什么我的“行”列表中的最后 n 个元素在我的 item_list 列表中重复?所以如果我的行是一个元组列表:
(("ID 1", "info1", "description1"), ("ID 2", "info2", "description2"), ... ("ID 14", "info14", "description14"))
然后我将尝试从这个“行”元组列表中创建一个列表字典,以使用以下代码:
item_list = []
info = {}
for row in rows:
itemId = row[0]
itemInfo = row[1]
itemDesc = row[2]
info['ID'] = itemId
info['Info'] = itemId
info['Description'] = itemDesc
print info
item_list.append(info)
print item_list
所以如果我的“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
“行”列表是一个元组列表。如果我在附加到“item_list”之前打印“信息”字典,我可以看到我的“信息”字典的每个不同迭代。
有人有什么想法吗?提前致谢。
最佳答案
我想你想改变:
item_list = []
info = {} # <---- Move this to inside the loop.
for row in rows:
itemId = row[0]
itemDesc = row[10]
到:
item_list = []
for row in rows:
info = {} # <---- here
itemId = row[0]
itemDesc = row[10]
关于Python追加列表重复最后一个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24395750/