合并dicts将dict1值与dict2值一起使用

时间:2017-03-09 10:44:49

标签: python dictionary join merge

我有两个这样的说法:

a = {'SITE1': [700], 'SITE2': [500]}
b = {'SITE1': [1,2,3,4], 'SITE2': [4,5,6,7], 'SITE3': [8,9,10,11]}

我正在寻找这个结果:

c = {'SITE1': [1/700, 2/700, 3/700, 4/700],
     'SITE2': [4/500, 5/500, 6/500, 7/500]}
     'SITE3': [0, 0, 0, 0]}

如果在'a'字典中找不到字典'b'网站,则该网站的值应在结果中替换为零。

你能帮帮我吗?非常感谢。

2 个答案:

答案 0 :(得分:1)

也许会这样 - 假设你想要c的值作为浮点数列表并假设a的值总是单元素列表...:

a = {'SITE1': [700], 'SITE2': [500]}
b = {'SITE1': [1,2,3,4], 'SITE2': [4,5,6,7], 'SITE3': [8,9,10,11]}

c = dict()
for key in b:
    if key in a:
        c[key] = [float(v)/(a[key][0]) for v in b[key]]
    else:
        c[key] = [0 for v in b[key]]

答案 1 :(得分:0)

c = { k : [ val_b / a[k][0] for val_b in b[k] ] for k in a }

请注意,我假设1/700表示分割的实际结果。 我还假设两个词典总是具有完全相同的键。

编辑:注意到在您的示例中,第一个dict还将值存储在单元素列表中