繁体   English   中英

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

[英]How to map python dictionary key values to each other?

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

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}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM