python ChainMap管理用法实例讲解

 更新时间:2021年08月18日 08:41:00   作者:小妮浅浅  
在本篇文章里小编给大家整理一篇关于python ChainMap的管理用法及相关实例,有需要的朋友们可以学参考下。

说明

1、ChainMap的主要用例是提供一种有效的方法来管理多个范围或上下文,并处理重复键的访问优先级。

2、当有多个存储重复键的字典访问它们的顺序时,这个功能非常有用。

在ChainMap文档中找到一个经典的例子,它模拟Python如何分析不同命名空间中的变量名称。

当Python搜索名称时,它会依次搜索当地、全局和内置的功能域,直到找到目标名称。Python作用域是将名称映射到对象的字典。

为了模拟Python的内部搜索链,可以使用链映射。

实例

>>> import builtins
 
>>> # Shadow input with a global name
>>> input = 42
 
>>> pylookup = ChainMap(locals(), globals(), vars(builtins))
 
>>> # Retrieve input from the global namespace
>>> pylookup["input"]
42
 
>>> # Remove input from the global namespace
>>> del globals()["input"]
 
>>> # Retrieve input from the builtins namespace
>>> pylookup["input"]
<built-in function input>

知识点扩展:

ChainMap类管理的是一个字典序列,并按其出现的顺序搜索以查找与键关联的值。ChainMap提供了一个很好的“上下文”容器,因此可以把它看成一个栈,栈增长时发生变更,栈收缩时这些变更被丢弃。

下面,我们来看看其基本的使用规则:

import collections

a = {"a": "A", "c": "c", }
b = {"b": "B", "c": "D", }

col = collections.ChainMap(a, b)
# 和普通字典一样访问
print(col["a"])
print(list(col.keys()), list(col.values()))

for key, value in col.items():
    print(key, value)

可以看到,在相同的key值情况下,只有子映射a的值。这也就是说明ChainMap是按子映射传递到构造函数的顺序来搜索这些子映射。

以上就是python ChainMap管理用法实例讲解的详细内容,更多关于python ChainMap的管理用法的资料请关注脚本之家其它相关文章!

相关文章

  • 使用Python和大模型进行数据分析和文本生成

    使用Python和大模型进行数据分析和文本生成

    Python语言以其简洁和强大的特性,成为了数据科学、机器学习和人工智能开发的首选语言之一,在这篇文章中,我将介绍如何用Python连接和使用大模型,并通过示例展示如何在实际项目中应用这些技术,需要的朋友可以参考下
    2024-05-05
  • python连接mongodb集群方法详解

    python连接mongodb集群方法详解

    这篇文章主要介绍了python连接mongo集群方法详解,需要的朋友可以参考下
    2020-02-02
  • Django提高查询速度的9种方法总结

    Django提高查询速度的9种方法总结

    Django作为一个高度可扩展的Web框架,提供了多种方式来优化数据库查询,本文将介绍一些常用的Django数据库查询优化技巧,需要的可以参考一下
    2023-07-07
  • python怎么判断模块安装完成

    python怎么判断模块安装完成

    在本篇内容里小编给大家分享的是关于python如何判断模块是否安装的技术文章,有兴趣的朋友们可以参考下。
    2020-06-06
  • Python实现如何根据文件后缀进行分类

    Python实现如何根据文件后缀进行分类

    本文主要为大家详细介绍了如何通过python实现根据文件后缀实现分类,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以关注一下
    2021-12-12
  • python 使用MyQR和qrcode来制作二维码

    python 使用MyQR和qrcode来制作二维码

    这篇文章主要介绍了python 如何使用MyQR和qrcode来制作二维码,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下
    2021-05-05
  • yolov5模型配置yaml文件详细讲解

    yolov5模型配置yaml文件详细讲解

    YOLOV5模型配置文件存放在modules文件夹下,这里使用的是 yolov5s.yaml,下面这篇文章主要给大家介绍了关于yolov5模型配置yaml文件的相关资料,需要的朋友可以参考下
    2022-09-09
  • Django零基础入门之运行Django版的hello world

    Django零基础入门之运行Django版的hello world

    这篇文章主要介绍了Django零基础入门之运行Django版的hello world,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09
  • Python去除、替换字符串空格的处理方法

    Python去除、替换字符串空格的处理方法

    这篇文章主要介绍了Python去除、替换字符串空格的处理方法,去除字符串空格有两种方法,一种是 .replace(' old ',' new '),第二种方法也很简单,需要的朋友可以参考下
    2018-04-04
  • Python 中PyQt5 点击主窗口弹出另一个窗口的实现方法

    Python 中PyQt5 点击主窗口弹出另一个窗口的实现方法

    这篇文章主要介绍了Python 中PyQt5 点击主窗口弹出另一个窗口的实现方法,本文代码实例图文相结合的形式给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-07-07

最新评论