第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

將相似的嵌套字典的值組合成一個(gè)新的嵌套字典

將相似的嵌套字典的值組合成一個(gè)新的嵌套字典

泛舟湖上清波郎朗 2021-08-05 15:33:48
我必須使用的嵌套 dict 示例如下所示:d1 = {'Breda': {'Fuery': {'anger': 1},                       'Havoc': {'anticipation': 1, 'surprise': 1},                       'Hawkeye': {'anticipation': 2}},             'Fuery': {'Breda': {'anticipation': 2, 'surprise': 1},                       'Mustang': {'fear': 4}},             'Havoc': {'Breda': {'joy': 1},                       'Gloria': {'joy': 1},                       'Hawkeye': {'anticipation': 4, 'joy': 1, 'surprise': 1},                       'Mustang': {'surprise': 1}},             'Hawkeye': {'Hawkeye': {'joy': 2, 'trust': 1},                         'Mustang': {'anger': 1,                                     'joy': 6,                                     'surprise': 4,                                     'trust': 1}},             'Mustang': {'Everyone': {'anger': 2},                         'Fuery': {'anger': 3, 'surprise': 1},                         'Hawkeye': {'anger': 1,                                     'joy': 6,                                     'surprise': 1,                                     'trust': 1},                         'Mustang': {'joy': 2, 'trust': 1},                         'the team': {'anger': 1}}}我正在嘗試從中創(chuàng)建一個(gè)新的嵌套 dict d2,新鍵是 最外層 dict 的鍵d1,然后每個(gè)鍵的值是所有內(nèi)部d1鍵的值的組合。因此,如果'anticipation'例如顯示在多個(gè)鍵中,'anticipation'則應(yīng)將的值相加。所需的輸出如下所示:d2 = {'Breda': {'anger': 1, 'anticipation': 3, 'surprise': 1},      'Fuery': {'anticipation': 2, 'surprise': 1, 'fear': 4},      'Havoc': {'joy': 3, 'anticipation': 4, 'surprise': 2},      'Hawkeye': {'joy': 8, 'trust': 2, 'anger': 1, 'surprise': 4}      'Mustang': {'anger': 6, 'surprise': 2, 'joy': 8, 'trust': 2}}到目前為止,我有一段代碼,它以某種方式?jīng)]有遍歷內(nèi)部字典的所有鍵,只輸出最后一個(gè)的值:from pprint import pprint      # see d1 aboved2 = dict()for key, value in d1.items():    for k, v in value.items():        d2[key] = vpprint(d2) 
查看完整描述

1 回答

?
開心每一天1111

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超13個(gè)贊

您可以對(duì)內(nèi)部字典的值使用Counter:


from collections import Counter


d1 = {'Breda': {'Fuery': {'anger': 1},

                'Havoc': {'anticipation': 1, 'surprise': 1},

                'Hawkeye': {'anticipation': 2}},

      'Fuery': {'Breda': {'anticipation': 2, 'surprise': 1},

                'Mustang': {'fear': 4}},

      'Havoc': {'Breda': {'joy': 1},

                'Gloria': {'joy': 1},

                'Hawkeye': {'anticipation': 4, 'joy': 1, 'surprise': 1},

                'Mustang': {'surprise': 1}},

      'Hawkeye': {'Hawkeye': {'joy': 2, 'trust': 1},

                  'Mustang': {'anger': 1,

                              'joy': 6,

                              'surprise': 4,

                              'trust': 1}},

      'Mustang': {'Everyone': {'anger': 2},

                  'Fuery': {'anger': 3, 'surprise': 1},

                  'Hawkeye': {'anger': 1,

                              'joy': 6,

                              'surprise': 1,

                              'trust': 1},

                  'Mustang': {'joy': 2, 'trust': 1},

                  'the team': {'anger': 1}}}


result = {key: dict(sum(map(Counter, inner.values()), Counter())) for key, inner in d1.items()}


print(result)

輸出


{'Havoc': {'joy': 3, 'surprise': 2, 'anticipation': 4}, 'Mustang': {'joy': 8, 'trust': 2, 'anger': 7, 'surprise': 2}, 'Hawkeye': {'joy': 8, 'surprise': 4, 'anger': 1, 'trust': 2}, 'Breda': {'surprise': 1, 'anger': 1, 'anticipation': 3}, 'Fuery': {'fear': 4, 'surprise': 1, 'anticipation': 2}}

該語(yǔ)句sum(map(Counter, inner.values()), Counter())將每個(gè)內(nèi)部字典轉(zhuǎn)換為一個(gè) Counter,然后使用sum將它們組合在一起。這是可以做到的,因?yàn)?Counter 實(shí)現(xiàn)了加法,例如:


Counter({'anticipation': 2}) + Counter({'anticipation': 1, 'surprise': 1})

返回:


Counter({'anticipation': 3, 'surprise': 1})

更新


如果您想要每個(gè)鍵的總數(shù),只需添加以下幾行:


total = { key : sum(inner.values()) for key, inner in result.items() }

print(total)

輸出


{'Hawkeye': 15, 'Mustang': 19, 'Fuery': 7, 'Havoc': 9, 'Breda': 5}


查看完整回答
反對(duì) 回復(fù) 2021-08-05
  • 1 回答
  • 0 關(guān)注
  • 164 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)