首页 > 解决方案 > 将数据附加到字典

问题描述

我一直在尝试创建一个嵌套字典,我想我缺少一些关于字典的东西。我成功地在我的控制台上创建了值和键,但是当我尝试附加它时出现错误。它不断给我字典中的最后一个值。请问我做错了什么?

u= [(2, 'errorid 4'), (1, 'errorid 4260'), (6, 'errorid 7'), (75, 'errorid 0'),
    (1, 'errorid 14'), (4, 'errorid 4b07')]
v=['Frequency', 'Item']

data ={}
dicts ={}

for i,con in enumerate(u):
    con = list(con)
    for m,n in enumerate(con):
        dicts[v[m]]=n
    print(dicts)
    data[i+1]=dicts

dicts 控制台上的输出是正确的,但是当我尝试嵌套时它不起作用:

{'Frequency': 2, 'Item': 'errorid 4'}
{'Frequency': 1, 'Item': 'errorid 4260'}
{'Frequency': 6, 'Item': 'errorid 7'}
{'Frequency': 75, 'Item': 'errorid 0'}
{'Frequency': 1, 'Item': 'errorid 14'}
{'Frequency': 4, 'Item': 'errorid 4b07'}

输出应如下所示:

data = {1: {'Frequency': 2, 'Item': 'errorid 4'},
        2: {'Frequency': 1, 'Item': 'errorid 4260'},
        3: {'Frequency': 6, 'Item': 'errorid 7'}
        4: {.... }

标签: pythondictionary

解决方案


尝试这个:

data = {i + 1: {p: q for p, q in zip(v, x)} for i, x in enumerate(u)}

输出:

{1: {'Frequency': 2, 'Item': 'errorid 4'}, 2: {'Frequency': 1, 'Item': 'errorid 4260'},
 3: {'Frequency': 6, 'Item': 'errorid 7'}, 4: {'Frequency': 75, 'Item': 'errorid 0'}, 
 5: {'Frequency': 1, 'Item': 'errorid 14'}, 6: {'Frequency': 4, 'Item': 'errorid 4b07'}}

推荐阅读