簡體   English   中英

組合兩個不同字典的鍵和值

[英]Combining keys and values of two different dicts

我是python的新手,正在嘗試合並兩個字典

d1 = {
    'A': '1',
    'B': '2',
    'C': '3',
    'D': '4',
    'E': '5'
}

d2 = {
    'X': '!',
    'Y': '@'
}

我正在嘗試合並兩個字典的鍵,以便結果看起來像這樣:

d3 =  {
    'A_X': '1!',
    'B_X': '2!',
    'C_X': '3!',
    'D_X': '4!',
    'E_X': '5!',
    'A_Y': '1@',
    'B_Y': '2@',
    'C_Y': '3@',
    'D_Y': '4@',
    'E_Y': '5@',
}

您應該只遍歷字典並將其組合

d3 = {}
for k1,v1 in d1.iteritems():
    for k2,v2 in d2.iteritems():
        d3[k1+'_'+k2] = v1+v2 

另一種更神秘但又Python的方式:

d3 = {k1+'_'+k2:v1+v2 for k1,v1 in d1.iteritems() for k2,v2 in d2.iteritems() }

itertools.product使用字典理解

from itertools import product

d1 = { 'A': '1', 'B': '2', 'C': '3', 'D': '4', 'E': '5' }
d2 = { 'X': '!', 'Y': '@'}

d3 = {'_'.join([k1, k2]):''.join([d1[k1], d2[k2]]) for k1, k2 in product(d1.keys(), d2.keys())}

print(d3)
# {'E_X': '5!', 'C_X': '3!', 'D_Y': '4@', 'B_Y': '2@', 'A_X': '1!', 'D_X': '4!', 'A_Y': '1@', 'C_Y': '3@', 'B_X': '2!', 'E_Y': '5@'}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM