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

标签 python list for-loop

我很难弄清楚为什么我的“行”列表中的最后 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/

相关文章:

python - matplotlib 在 X 轴上绘制整数

javascript - 更新 ImmutableJS 列表中的多个条目

c# - For、While、Do 循环在迭代中导致与变量有关的奇怪错误

python - 如何按 Pandas 数据框中的对象属性进行过滤

python - VIM python 文件类型特定缩进在一个列表的 50 行后失败

python - 将值添加到 Python 列表中的列表

css - 如何使子菜单正确显示

c++ - 重载增量运算符、循环和边缘情况

Javascript:按键求和多个数组的最有效方法

python - 如何在条件检查时从现有数据帧复制数据帧中的选定行? [Python]