如果键相同,则将两个字典相乘

时间:2020-03-07 06:47:02

标签: python-3.x

我有字典和词典列表

fac_score = {'GB004': {'Video Conferencing': 1.0, 'Skype-enabled Room': 0.6}, 
             'GB006': {'Surface Hub': 0.8, 'Skype-enabled Room': 0.6},
             'GB008': {'Surface Hub': 0.8, 'Skype-enabled Room': 0.6},
             'GB013': {'Video Conferencing': 1.0, 'Skype-enabled Room': 0.6},
             'GB016': {'Skype-enabled Room': 0.6},
             'GB027': {'Video Conferencing': 1.0, 'Skype-enabled Room': 0.6},
             'GB037': {}, 
             'GB040': {'Video Conferencing': 1.0, 'Skype-enabled Room': 0.6},
             'GB045': {'Surface Hub': 0.8, 'Video Conferencing': 1.0, 'Skype-enabled Room': 0.6},
             'GB049': {'Surface Hub': 0.8, 'Skype-enabled Room': 0.6},
             'IE001': {'Skype-enabled Room': 0.6}, 'IE002': {'Video Conferencing': 1.0, 'Skype-enabled Room': 0.6},
             'IE005': {'Skype-enabled Room': 0.6}}

homenearby=[{'GB027': {'GB045': 0.5, 'GB027':1}},
            {'GB049': {'GB013': 0,'GB049': 1.0}}]

我需要生成一个新的字典,在将匹配的字典值相乘后,该字典将用字典更新家庭附近列表。

[{'GB027': {'GB045': {'Surface Hub': 0.4, 'Video Conferencing': 0.5, 'Skype-enabled Room': 0.3},
            'GB027': {'Video Conferencing': 1.0, 'Skype-enabled Room': 0.6}}},
 {'GB049': {'GB013': {'Video Conferencing': 0, 'Skype-enabled Room': 0},
            'GB049': {'Surface Hub': 0.8, 'Skype-enabled Room': 0.6}}}]
 facScoredict={}
    a=[]
    for ho_near in homenearby:
        for k,v in ho_near.items():
            for k1,v1 in fac_score.items():
                if(k1==v.get(k1)):
                    facScoredict[k]={i:fac_score[i]*v.get(i) for i in v.keys() }
                    a.append(facScoredict)

0 个答案:

没有答案