当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python collections.ChainMap用法及代码示例


用法:

class collections.ChainMap(*maps)

ChainMap 将多个 dicts 或其他映射组合在一起以创建单个可更新的视图。如果未指定maps,则提供一个空字典,以便新链始终具有至少一个映射。

底层映射存储在列表中。该列表是公开的,可以使用maps 属性访问或更新。没有其他状态。

查找连续搜索底层映射,直到找到一个键。相反,写入、更新和删除仅对第一个映射进行操作。

ChainMap 通过引用合并底层映射。因此,如果基础映射之一得到更新,这些更改将反映在 ChainMap 中。

支持所有常用的字典方法。此外,还有一个maps 属性、一个用于创建新子上下文的方法以及一个用于访问除第一个映射之外的所有内容的属性:

请注意,ChainMap() 的迭代顺序是通过扫描从最后到第一个的映射来确定的:

>>> baseline = {'music': 'bach', 'art': 'rembrandt'}
>>> adjustments = {'art': 'van gogh', 'opera': 'carmen'}
>>> list(ChainMap(adjustments, baseline))
['music', 'art', 'opera']

这给出了与从最后一个映射开始的一系列 dict.update() 调用相同的顺序:

>>> combined = baseline.copy()
>>> combined.update(adjustments)
>>> list(combined)
['music', 'art', 'opera']

在 3.9 版中更改:增加了对||=运算符,在PEP 584.

相关用法


注:本文由纯净天空筛选整理自python.org大神的英文原创作品 collections.ChainMap。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。