合并多个字典或映射

把多个字典或者是映射从逻辑上合并为一个单一映射后执行某些操作

1. collections模块中的ChainMap类

a = {'x': 1, 'z': 3 }
b = {'y': 2, 'z': 4 }
from collections import ChainMap
c = ChainMap(a,b)
print(c) #ChainMap({'x': 1, 'z': 3}, {'y': 2, 'z': 4})
print(c['x']) # 1
print(c['z']) # 3

注意:在此函数中,不同字典有相同的键,都是打印出第一个

-  用这个函数,这些字典并不是正真的合并在了一起,而是在内部创建了一个可以容纳这些字典的列表

-  对于字典的更新和删除总是影响列表中第一个字典

2.ChainMap对编程语言中的作用范围变量时非常有用的

values = ChainMap()
values['x'] = 1
values = values.new_child()
values['x'] = 2
values = values.new_child()
values['x'] = 3
print(values) #ChainMap({'x': 3}, {'x': 2}, {'x': 1})
values_x1 = values['x'] 
print(values_x1) #3  ##输出最后一个值
values_x2 = values_x1.parents
print(values_x2['x']) #2

 

 

posted @ 2022-07-01 14:56  花桥  阅读(57)  评论(0)    收藏  举报