我有2个字典,它们都包含相同的键(或者它们会有一些切割,show
Transcript cr; show: columns asString,' ', rows asString
)但值不同。我想用一个字典中的键替换另一个字典中的键。例如,这是我的一部分列表:
Dict 1
[3:]
Dict2
"AED":"United Arab Emirates Dirham",
"AFN":"Afghan Afghani",
"ALL":"Albanian Lek",
"AMD":"Armenian Dram",
"ANG":"Netherlands Antillean Guilder",
"AOA":"Angolan Kwanza",
"ARS":"Argentine Peso"
我想要一个包含第一个条目的列表 "阿拉伯联合酋长国迪拉姆":3.672301 有什么想法吗?请告诉我。谢谢!
答案 0 :(得分:3)
用单行(dict comprehension)来做这件事
dict1={"AED":"United Arab Emirates Dirham",
"AFN":"Afghan Afghani",
"ALL":"Albanian Lek",
"AMD":"Armenian Dram",
"ANG":"Netherlands Antillean Guilder",
"AOA":"Angolan Kwanza",
"ARS":"Argentine Peso"}
dict2 = {"USDAED":3.672301,
"USDAFN":66.800003,
"USDALL":127.000221,
"USDAMD":486.160004,
"USDANG":1.769942,
"USDAOA":165.080994,
"USDARS":15.609965}
dict3 = {dict1[x[3:]]:y for x,y in dict2.items()}
print(dict3)
的产率:
{'Albanian Lek': 127.000221, 'Netherlands Antillean Guilder': 1.769942,
'Armenian Dram': 486.160004, 'United Arab Emirates Dirham': 3.672301,
'Afghan Afghani': 66.800003, 'Argentine Peso': 15.609965,
'Angolan Kwanza': 165.080994}
代码使用as键重新创建第三个字典:第一个字典的值(您提到的小键截止值,以及值:第二个值的值
注意:由于没有订购,因此您的“第一次进入”愿望不会成立,除非您打印出当然排序的项目。
答案 1 :(得分:0)
dict2 = {dict1[key[3:]], value for key, value in dict2.items()
答案 2 :(得分:0)
更改/更新第一个字典使用dict.update()功能:
# d1 and d2 are the first and the second dicts respectively
d1.update({k[3:]:v for k,v in d2.items()})
print(d1)
输出:
{'AFN': 66.800003, 'AOA': 165.080994, 'AED': 3.672301, 'ALL': 127.000221, 'ARS': 15.609965, 'AMD': 486.160004, 'ANG': 1.769942}