概念
1、Chainmap将Python3.3添加到collections中作为管理的方便工具范围和环境。
它可以将多个字典与其他映射相结合,使它们在逻辑上显示和表达为一个整体。它创建了一个单一的可更新视图,类似于传统字典,但有一些内部差异。
2、ChainMap不会合并它的映射。相反,它们被保存在内部映射列表中。
ChainMap在列表顶部重新实现常见的字典操作。由于原始输入映射保存在内部列表中,这些映射中的任何变化都会影响整个chainMap对象。
将输入映射存储在列表中,允许您在给定的链映射中有重复键。如果您搜索执行键,ChainMap搜索映射列表,直到您找到第一个目标键。如果钥匙丢了,你会像往常一样得到一个。
当需要管理嵌套作用域时,将映射存储在列表中,每个映射代表一个特定的作用域或上下文。
为了更好地理解功能域和上下文的含义,请考虑如何分析Python的名称。当Python搜索名称时,它将在locals()、globals()和中搜索,最后builtins直到找到第一个目标名称。如果名字不存在,你会得到一个Nameerroror.处理范围和上下文是你能解决的最常见的问题。
使用ChainMap时,可以使用不相交或相交的键链接多个字典。
首先,chainmap允许您将所有字典视为一个字典。因此,您可以像使用单个字典一样访问键值。在第二种情况下,除了管理字典外,您还可以使用内部映射列表作为字典中的重复键来定义某个访问优先级。因此,chainmap对象非常适合处理多个上下文。
ChainMap是一种奇怪的行为,它是一种突变,如更新、添加、删除、删除和弹出键,它只作用于内部映射列表中的第一个映射。
ChainMap的主要功能:
可更新的视图是从多个输入映射构建的。
提供与字典相似的界面,但有一些额外的功能。
不合并输入映射,但保存在内部公共列表中。
检查输入映射的外部变化。
可包含不同值的重复键。
按顺序搜索内部映射列表搜索键。
KeyErrror在搜索整个映射列表后缺少键时抛出a。
只改变内部列表中的第一个映射。
以上是Python中ChainMap的介绍,希望对大家有所帮助。更多Python学习指导:python基础教程
本文教程操作环境:windows7系统Python 3.9.1,DELL G3电脑。