概念
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电脑。
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ 如何在python中验证文件是否存在01/08
- ♥ python指针读取函数seek()如何使用?12/17
- ♥ python可以做的有趣的事情11/10
- ♥ 如何在 python 中使用 try..except 语句?11/08
- ♥ 如何编写 python 库12/23
- ♥ 不带括号的python调用函数09/19
内容反馈