如何将python字典的键值相互映射?



假设我们有如下两个字典:

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_bdict_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}

相关内容

  • 没有找到相关文章

最新更新