当前位置:主页 > python教程 > python ChainMap 合并字典的实现步骤

python ChainMap合并字典的操作方法

发布:2019-11-25 14:39:42 72


为找教程的网友们整理了python字典相关的编程文章,网友蒋晋鹏根据主题投稿了本篇教程内容,涉及到python、ChainMap、合并字典、python ChainMap 合并字典的实现步骤相关内容,已被642网友关注,下面的电子资料对本篇知识点有更加详尽的解释。

python ChainMap 合并字典的实现步骤

字典是Python语言中唯一的映射类型。

映射类型对象里哈希值(键,key)和指向的对象(值,value)是一对多的的关系,通常被认为是可变的哈希表。
字典对象是可变的,它是一个容器类型,能存储任意个数的Python对象,其中也可包括其他容器类型。

字典类型与序列类型的区别:

1. 存取和访问数据的方式不同。
2. 序列类型只用数字类型的键(从序列的开始按数值顺序索引);
3. 映射类型可以用其他对象类型作键(如:数字、字符串、元祖,一般用字符串作键),和序列类型的键不同,映射类型的键直4.接或间接地和存储数据值相关联。
5. 映射类型中的数据是无序排列的。这和序列类型是不一样的,序列类型是以数值序排列的。
6. 映射类型用键直接“映射”到值。

字典是Python中最强大的数据类型之一。 

ChainMap对象支持字典对象的所有方法,你可以完全像操作字典一样操作它。但是它不会真的把字典合并在一起,而是在内部储存一个Key到每个字典的映射,当你读取 e[key]的时候,它先去查询这个key在哪个字典里面,然后再去对应的字典里面查询对应的值。所以使用ChainMap几乎不需要额外的内存空间(当然这个对象自己会占用一些空间,但是如果要合并大字典,那么它自己占用的空间几乎可以忽略)。

from collections import ChainMap

a = {'a': 1, 'b': 2}
b = {'x': 3, 'y': 4}
a.update(b)
print(a)

c = ChainMap(a, b)
print(c['a'])

如果两个字典里面有一个Key的名字相同, ChainMap对象会使用第一个拥有这个Key的字典里面的值

a = {'a': 1, 'b': 2}
b = {'a': 3, 'y': 4}

c = ChainMap(a, b)
print(c['a'])

如果为ChainMap对象添加一个Key-Value对, 新的Key-Value会被添加进第一个字典里面

a = {'a': 1, 'b': 2}
b = {'a': 3, 'y': 4}

c = ChainMap(a, b)
c['new'] = "新值"
print(a)

如果从原字典里面删除一个Key, ChainMap对象也会相应更新

a = {'a': 1, 'b': 2}
b = {'a': 3, 'y': 4}

c = ChainMap(a, b)
print('w' in c)
a['w'] = '新值'
print('w' in c)

如果从ChainMap对象里面删除一个Key,如果这个Key只在一个源字典中存在,那么这个Key会被从源字典中删除。如果这个Key在多个字典中都存在,那么Key会被从第一个字典中删除。当被从第一个字典中删除以后,第二个源

字典的Key可以继续被ChainMap读取

不能删除第一个字典 a 里不存在的key

a = {'a': 1, 'b': 2}
b = {'aa': 3, 'a': 4}

c = ChainMap(a, b)
c.pop('a') # 只能删除 a 里的 k,删 b 会报错
print(a, b)
print(c['a'])

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持码农之家。


参考资料

相关文章

  • python中list.copy方法用法详解

    发布:2023-04-17

    这篇文章主要给大家介绍了关于python中list.copy方法使用的相关资料,文中还介绍了python list.copy() 和 copy.deepcopy()区别,需要的朋友可以参考下


  • 实例详解如何实现Python登录系统界面

    发布:2020-01-19

    这篇文章主要介绍了Python登录系统界面实现详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,,需要的朋友可以参考下


  • Python使用base64模块进行二进制数据编码详解

    发布:2022-11-07

    给大家整理了关于Python的教程,这篇文章主要介绍了Python使用base64模块进行二进制数据编码详解,具有一定借鉴价值,需要的朋友可以参考下


  • Python中DataFrame与内置数据结构相互转换的实现

    发布:2023-04-13

    pandas 支持我们从 Excel、CSV、数据库等不同数据源当中读取数据,来构建 DataFrame。但有时数据并不来自这些外部数据源,这就涉及到了 DataFrame 和 Python 内置数据结构之间的相互转换,本文就来和大家详细聊聊


  • python要学多久

    发布:2020-05-11

    本人想学习python,但是不知道零基础或者基础很差的情况多久能学会呢?或者说多久能够正式入门呢?


  • python和汇编语言的区别知识点

    发布:2019-09-05

    Python不是汇编语言,汇编语言是低级的机器语言,由一系列的汇编指令来编写的,而Python是高级编程语言,是一种动态的强类型解释型语言。


  • Python Flask前后端Ajax交互的方法示例

    Python Flask前后端Ajax交互的方法示例

    发布:2023-01-10

    给大家整理了关于Python的教程,这篇文章主要介绍了Python Flask前后端Ajax交互的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧


  • Python的XSS测试工具XSStrike用法实例

    发布:2020-05-25

    XSS(Cross Site Scripting,跨站脚本攻击)是一类特殊的Web客户端脚本注入攻击手段,通常指攻击者通过“HTML注入”篡改了网页,插入恶意的脚本,从而在用户浏览网页时控制浏览器的一种攻击。


网友讨论