假设我们有如下两个字典:
dict_a_to_b = {2:4, 6:9, 9:3}
dict_a_to_c = {2: 0.1, 6:0.2, 9: 0.8}
如何在python中映射这两个字典来生成dict_c_to_b ?
dict_c_to_b = {0.1:4, 0.2:9, 0.8:3}
使用dict
推导式-像这样:
dict_a_to_b = {2:4, 6:9, 9:3}
dict_a_to_c = {2: 0.1, 6:0.2, 9: 0.8}
result = {v: dict_a_to_b[k] for k, v in dict_a_to_c.items()}
print(result) #-> {0.1: 4, 0.2: 9, 0.8: 3}
如果你有多余的钥匙在dict_a_to_c
不出现在另一个对象,您可以使用一个if
条件检查是否存在的第一秘诀:
dict_a_to_b = {2:4, 6:9, 9:3}
dict_a_to_c = {2: 0.1, 6:0.2, 9: 0.8, 10:0.6, 50: 0.77, 12:0.56}
result = {v: dict_a_to_b[k] for k, v in dict_a_to_c.items()
if k in dict_a_to_b}
print(result) #-> {0.1: 4, 0.2: 9, 0.8: 3}
如果您知道dict_a_to_b
和dict_a_to_c
中的键以相同的顺序出现,您也可以使用zip
并在两个dict
对象上使用values
:
result = dict(zip(dict_a_to_c.values(), dict_a_to_b.values()))
print(result) #-> {0.1: 4, 0.2: 9, 0.8: 3}