python 含有相同值的键合并_使用相同的键合并Python中的两个词典

我有两个字典,相同的键是exaclty.

第一本字典是:

{ "key_1" : "AR" ,

"key_2":"BR" ,

"key_3" : "CR" }

第二个是:

{ "key_1" : "signinfication of AR" ,

"key_2":" signinfication of BR" ,

"key_3" : " signinfication of CR" }

我想获得以下字典:

{"key_1" : {"AR" : "signinfication of AR"} ,

"key_2" : {"BR" : "signinfication of BR"} ,

"key_3" : {"CR" : "signinfication of CR"}

谢谢您的帮助 !

解决方法:

这就像单线词典理解一样简单.

>>> {k : {d1[k] : d2[k]} for k in d1.keys() & d2.keys()}

{

"key_2": {

"BR": " signinfication of BR"

},

"key_1": {

"AR": "signinfication of AR"

},

"key_3": {

"CR": " signinfication of CR"

}

}

这里,d1和d2是你的两个词典. d1.keys()& d2.keys()将在字典键上执行交集,以确保对两个字典中存在的键执行迭代.在这里,就是这样

d1.keys() & d2.keys()

{'key_1', 'key_2', 'key_3'}

当你无法保证两个词典都具有完全相同的键时,这在一般意义上是很好的.

在python2.7及更早版本中,您需要稍作修改,因为keys()会返回一个列表.使用set.intersection –

>>> {k : {d1[k] : d2[k]} for k in set(d1.keys()).intersection(d2.keys())}

如果你正在使用列表的dicts,那么上面的代码需要在相应的列表之间进行压缩 –

>>> d1

{

"key_1": [

"AR",

"BR",

"CR"

],

...

}

>>> d2

{

"key_1": [

"signfication of AR",

"signfication of BR",

"signfication of CR"

],

...

}

>>> {k : dict(zip(d1[k], d2[k])) for k in d1.keys() & d2.keys()}

{

"key_1": {

"BR": "signfication of BR",

"CR": "signfication of CR",

"AR": "signfication of AR"

},

"key_3": {

"CE": " signfication of CE",

"AE": "signfication of AE",

"BE": " signfication of BE"

},

"key_2": {

"BZ": "signfication of BZ",

"CZ": "signfication of CZ",

"AZ": "signfication of AZ"

}

}

标签:python,dictionary,merge

来源: https://codeday.me/bug/20190715/1464890.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值