合并多个字典或映射

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

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 @   花桥  阅读(42)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示