知行编程网知行编程网  2023-01-09 05:30 知行编程网 隐藏边栏  2 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于python中ChainMap是什么的相关知识,希望可以帮到处于编程学习途中的小伙伴

python中的ChainMap是什么


概念

1. ChainMap 将 Python 3.3 添加到集合中,作为范围和环境管理的便捷工具。

可以组合多个字典和其他映射,以便它们在逻辑上看起来和作为一个。它创建了一个像普通字典一样工作的单一可更新视图,但有一些内部差异。

2. ChainMap 不会合并其映射。相反,它们保存在内部映射列表中。

ChainMap 在列表之上重新实现了常见的字典操作。因为内部列表包含对原始输入映射的引用,所以这些映射中的任何更改都会影响整个 chainMap 对象。

将输入映射存储在列表中允许你在给定的链映射中拥有重复的键。如果查找执行键,ChainMap 会搜索映射列表,直到找到第一个目标键。如果钥匙丢失,你将照常获得一把。

当你需要管理嵌套范围时,将地图存储在列表中将真正发挥作用,每个地图代表一个特定的范围或上下文。

为了更好地理解功能域和上下文的含义,请考虑 Python 如何解析名称。当 Python 搜索名称时,它会在 locals() 、 globals() 和最后的内置函数中搜索,直到找到第一个目标名称。如果名称不存在,你将收到 NameError。处理范围和上下文是你可以解决的最常见问题。

使用 ChainMap 时,你可以使用不相交或相交的键链接多个字典。

首先,ChainMap 允许你将所有字典视为一个字典。因此,你可以像使用单个字典一样访问键值对。在第二种情况下,你可以使用内部映射列表来为字典中的重复键定义某种访问优先级,而不是管理字典。因此,ChainMap 对象非常适合处理多个上下文。

ChainMap 有一个奇怪的行为,它的更新、添加、删除、清除和弹出键等突变仅作用于内部映射列表中的第一个映射。


ChainMap的主要功能:

从多个输入映射构建可更新的视图。

提供类似于字典的界面,但具有一些附加功能。

不合并输入映射,而是保存在内部公共列表中。

查看输入映射的外部变化。

可包含不同值的重复键。

按顺序搜索内部映射列表搜索键。

KeyErrror在搜索整个映射列表后缺少键时抛出a。

只改变内部列表中的第一个映射。


本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享