合并dicts使用dict1值和dict2值

2024-10-02 22:28:55 发布

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

我有两个这样的格言:

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”dict中找不到dict“b”站点,则结果中该站点的值应替换为零

你能帮我吗?谢谢


Tags: 站点dictsite1site2格言site3
2条回答

也许这样就可以了-假设你想要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]]
c = { k : [ val_b / a[k][0] for val_b in b[k] ] for k in a }

注意,我假设用1/700表示除法的实际结果。 我还假设两个字典的键总是完全相同的

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

相关问题 更多 >