我是python的新手,我正在尝试合并两个dicts
d1 = {
'A': '1',
'B': '2',
'C': '3',
'D': '4',
'E': '5'
}
d2 = {
'X': '!',
'Y': '@'
}
我正在尝试合并两个dicts的键,以便结果如下所示:
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@',
}
答案 0 :(得分:2)
你应该迭代字典并将它们组合起来
d3 = {}
for k1,v1 in d1.iteritems():
for k2,v2 in d2.iteritems():
d3[k1+'_'+k2] = v1+v2
另一种更神秘但更加诡异的方式:
d3 = {k1+'_'+k2:v1+v2 for k1,v1 in d1.iteritems() for k2,v2 in d2.iteritems() }
答案 1 :(得分:0)
dictionary comprehension使用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@'}