python

python 标准库 collections 之ChainMap

文章暂存

systemime
2020-07-24
2 min

摘要.

ChainMap 非常强大的dict字典组合功能,他将多个dict字典放入到一个list中,他比dict字典使用update快很多。通过ChainMap可以来模拟嵌套的情景,而且多用于模板之中。
基本用法,请看下面示例:

from collections import ChainMap
m1 = {'Type': 'admin', 'codeID': '00001'}
m2 = {'name': 'woodname','codeID': '00002'}
m = ChainMap(m1, m2)
print(m)
# 输出:
# ChainMap({'Type': 'admin', 'codeID': '00001'}, {'name': 'woodname', 'codeID': '00002'})
print(m.maps)
# 输出:[{'Type': 'admin', 'codeID': '00001'}, {'name': 'woodname', 'codeID': '00002'}]
for i in m.items():
    print(i)
# 输出:
# ('name', 'woodname')
# ('codeID', '00001')
# ('Type', 'admin')
print(m['name']) # 读取元素的值
print(m['codeID']) # 注意,当key重复时以最前一个为准
print(m.get('Type'))
# 输出:
# woodname
# 00001
# admin
# 新增map
m3 = {'data': '888'}
m=m.new_child(m3) # 将 m3 加入m
print(m)
# 输出:
# ChainMap({'data': '888'}, {'Type': 'admin', 'codeID': '00001'}, {'name': 'woodname', 'codeID': '00002'})
print(m.parents) # m 的父亲
# 输出:ChainMap({'Type': 'admin', 'codeID': '00001'}, {'name': 'woodname', 'codeID': '00002'})
print(m.parents.parents)
# 输出 : ChainMap({'name': 'woodname', 'codeID': '00002'})

# python 标准库 其他文章传送门

# 木头人:python 标准库 collections 之deque

# python 标准库 collections 之defaultdict

# 木头人:python 标准库 collections 之OrderedDict

# python 标准库 collections 之namedtuple

# python 标准库 collections 之Counter

# python 标准库 collections 之ChainMap

上次编辑于: 2021/5/20 下午3:26:49