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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在Python中從一個字典迭代到另一個字典

在Python中從一個字典迭代到另一個字典

繁華開滿天機 2023-12-29 15:37:17
我有兩個字典 Dict1 和 Dict2。Dict1中每個鍵的值如下所示:Dict1 = { D1:[ C1, C2], D2: [C1], D3: [C2, C3], D4: [C3]}但是 Dict2 由來自 Dict1 的鍵組成。Dict 2 中的值是由元組組成的列表,如下所示。Dict2 = { C1: [ (W1, 1 ), (W2, 5),  (W3, 4) ], C2: [ (W3, 2), (W4, 6) ,  (W5, 7) ],  C3:[ (W6,0),( W1,4), ( W2, 8)], C4: [(W7,3 ),(W8, 8)])我有興趣創(chuàng)建 Dict3,它由 Dict1 中的鍵和列表中元組的第一個元素的值組成,這些值是 Dict2 中的值,如下所示。您可以忽略元組的第二個元素。例如,C1 將 [W1, W2, W3] 作為第一元素,而 C2 將 [W3, W4, W5] 作為第一元素。由于Dict1中的D1是D1:[C1,C2],我想將C1和C2的列表組合為[W1,W2,W3,W4,W5]。所以最終期望的輸出是:Dict3= { D1: [W1, W2, W3, W4, W5], D2:[W1, W2, W3], D3:[W3, W4, W5, W6, W1, W2 ] }如何從Dict1和Dict2獲取Dict 3?這是我的代碼:        Dict1 = { 'D1':[ 'C1', 'C2'], 'D2': ['C1'], 'D3': ['C2', 'C3'], 'D4': ['C3']}        Dict2 = { 'C1': [ ('W1', 1 ), ('W2', 5),  ('W3', 4) ], 'C2': [ ('W3', 2), ('W4', 6) ,  ('W5', 7) ],  'C3':[ ('W6',0),( 'W1',4), ( 'W2', 8)], 'C4': [('W7',3 ),('W8', 8)]}        for d, c_list in Dict1.items():            for c in c_list:                for cw, w_tup_list in Dict2.items():                    if (c == cw):                        w_list = []                        for w_tup in w_tup_list:                           w_list.append(w_tup[0])                        print (d, w_list)我得到的當前輸出是D1 ['W1', 'W2', 'W3']D1 ['W3', 'W4', 'W5']D2 ['W1', 'W2', 'W3']D3 ['W3', 'W4', 'W5']D3 ['W6', 'W1', 'W2']D4 ['W6', 'W1', 'W2']我想要的輸出應(yīng)該是像字典一樣:    Dict3 = { 'D1':['W1', 'W2', 'W3', 'W4', 'W5'], 'D2': ['W1', 'W2', 'W3'], 'D3': ['W3', 'W4', 'W5', 'W6', 'W1', 'W2' ], 'D4': ['W6', 'W1', 'W2']}
查看完整描述

3 回答

?
飲歌長嘯

TA貢獻1951條經(jīng)驗 獲得超3個贊

您不需要循環(huán)即可從中獲取項目Dict2。只需使用Dict2[c].


Dict1 = { 'D1':[ 'C1', 'C2'], 'D2': ['C1'], 'D3': ['C2', 'C3'], 'D4': ['C3']}

Dict2 = { 'C1': [ ('W1', 1 ), ('W2', 5),  ('W3', 4) ], 'C2': [ ('W3', 2), ('W4', 6) ,  ('W5', 7) ],  'C3':[ ('W6',0),( 'W1',4), ( 'W2', 8)], 'C4': [('W7',3 ),('W8', 8)]}

Dict3 = {}


for d, c_list in Dict1.items():

    for c in c_list:

        w = [item[0] for item in Dict2[c]]

        Dict3[d] = Dict3.get(d, []) + w


print(Dict3)


查看完整回答
反對 回復(fù) 2023-12-29
?
慕森王

TA貢獻1777條經(jīng)驗 獲得超3個贊

Dict1 = { 'D1':[ 'C1', 'C2'], 'D2': ['C1'], 'D3': ['C2', 'C3'], 'D4': ['C3']}

Dict2 = { 'C1': [ ('W1', 1 ), ('W2', 5),  ('W3', 4) ], 'C2': [ ('W3', 2), ('W4', 6) ,  ('W5', 7) ],  'C3':[ ('W6',0),( 'W1',4), ( 'W2', 8)], 'C4': [('W7',3 ),('W8', 8)]}


Dict3 = {k: [ii for i in v for ii, _ in Dict2[i]] for k, v in Dict1.items()}

print(Dict3)

印刷:


{'D1': ['W1', 'W2', 'W3', 'W3', 'W4', 'W5'], 'D2': ['W1', 'W2', 'W3'], 'D3': ['W3', 'W4', 'W5', 'W6', 'W1', 'W2'], 'D4': ['W6', 'W1', 'W2']}



查看完整回答
反對 回復(fù) 2023-12-29
?
犯罪嫌疑人X

TA貢獻2080條經(jīng)驗 獲得超4個贊

我不確定是否有更快的解決方案,但它可以滿足您的需求:


dict1 = {'D1':[ 'C1', 'C2'], 'D2': ['C1'], 'D3': ['C2', 'C3'], 'D4': ['C3']}

dict2 = {'C1': [('W1', 1), ('W2', 5),  ('W3', 4) ], 'C2': [ ('W3', 2), ('W4', 6) ,  ('W5', 7) ], 'C3':[ ('W6',0), ('W1',4), ('W2', 8)], "C4": [('W7', 3),('W8', 8)]}


dict3 = {k: [t[0] for e in v for t in dict2[e]] for k, v in dict1.items()}

print(dict3)

輸出:


{'D1': ['W1', 'W2', 'W3', 'W3', 'W4', 'W5'], 'D2': ['W1', 'W2', 'W3'], 'D3': ['W3', 'W4', 'W5', 'W6', 'W1', 'W2'], 'D4': ['W6', 'W1', 'W2']}



查看完整回答
反對 回復(fù) 2023-12-29
  • 3 回答
  • 0 關(guān)注
  • 240 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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