切换字典键

时间:2017-02-09 21:15:48

标签: python dictionary

我有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 有什么想法吗?请告诉我。谢谢!

3 个答案:

答案 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}