Python cookbook(数据结构与算法)将多个映射合并为单个映射

这篇文章主要介绍了python cookbook(数据结构与算法)将多个映射合并为单个映射的方法,结合实例形式分析了python字典映射合并操作相关实现技巧,需要的朋友可以参考下

本文实例讲述了Python将多个映射合并为单个映射的方法。分享给大家供大家参考,具体如下:

问题:在逻辑上将多个字典或映射合并为一个单独的映射结构,以此执行某些特定的操作,比如查找值或者检查键是否存在

解决方案:利用collections模块中的ChainMap类

ChainMap可接受多个映射然后在逻辑上使它们表现为一个单独的映射结构。这些映射在字面上并不会合并在一起。相反,ChainMap只是简单地维护一个记录底层映射关系的列表,然后重定义常见的字典操作来扫描这个列表。

立即学习“Python免费学习笔记(深入)”;

# example.py## Example of combining dicts into a chainmapa = {'x': 1, 'z': 3 }b = {'y': 2, 'z': 4 }# (a) Simple example of combiningfrom collections import ChainMapc = ChainMap(a,b) #如果有重复的键,那么会采用第一个映射中所对应的值。print(c['x'])   # Outputs 1 (from a)print(c['y'])   # Outputs 2 (from b)print(c['z'])   # Outputs 3 (from a)# Output some common valuesprint('len(c):', len(c))print('c.keys():', list(c.keys()))print('c.values():', list(c.values()))# Modify some valuesc['z'] = 10c['w'] = 40print("a:", a)del c['x']print("a:", a)# Example of stacking mappings (like scopes)values = ChainMap()values['x'] = 1# Add a new mappingvalues = values.new_child()values['x'] = 2# Add a new mappingvalues = values.new_child()values['x'] = 3print(values)print(values['x'])# Discard last mappingvalues = values.parentsprint(values)print(values['x'])# Discard last mappingvalues = values.parentsprint(values)print(values['x'])

登录后复制

>>> ================================ RESTART ================================>>>123len(c): 3c.keys(): ['y', 'x', 'z']c.values(): [2, 1, 3]a: {'x': 1, 'z': 10, 'w': 40}a: {'z': 10, 'w': 40}ChainMap({'x': 3}, {'x': 2}, {'x': 1})3ChainMap({'x': 2}, {'x': 1})2ChainMap({'x': 1})1>>>

登录后复制

另外ChainMap操作的是原始字典,可以避免一些令人不悦的行为,例如其中任何一个原始字典的修改无法反应到合并后的字典中。

>>> a={'x':1,'z':3}>>> b={'y':2,'z':4}>>> merged=ChainMap(a,b)>>> mergedChainMap({'x': 1, 'z': 3}, {'y': 2, 'z': 4})>>> merged['x']1>>> a['x']=55>>> merged['x']55>>> mergedChainMap({'x': 55, 'z': 3}, {'y': 2, 'z': 4})>>>

登录后复制

(代码摘自《Python Cookbook》)

相关推荐:

Python cookbook(字符串与文本)针对任意多的分隔符拆分字符串操作

以上就是Python cookbook(数据结构与算法)将多个映射合并为单个映射的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2263729.html

(0)
上一篇 2025年2月27日 07:46:08
下一篇 2025年2月22日 13:32:22

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • Python实现按照指定要求逆序输出一个数字

    这篇文章主要介绍了python实现按照指定要求逆序输出一个数字的方法,涉及python针对字符串的遍历、判断、输出等相关操作技巧,需要的朋友可以参考下 本文实例讲述了Python实现按照指定要求逆序输出一个数字的方法。分享给大家供大家参考,…

    2025年2月27日
    200
  • 理解Python赋值与拷贝

    本文实例讲述了理解Python赋值与拷贝。分享给大家供大家参考,具体如下: 变量与赋值 在 Python 中,一切皆为对象,对象通过「变量名」引用,「变量名」更确切的叫法是「名字」,好比我们每个人都有自己的名字一样,咱们通过名字来代指某个人…

    2025年2月27日 编程技术
    200
  • python之图形的绘制

    本文实例讲述了python之图形的绘制。分享给大家供大家参考,具体如下: 1、给图形添加数据标签 plt.plot(datat.index,datat)plt.xlabel(‘index’, fontsize=15)plt.legend([…

    2025年2月27日 编程技术
    200
  • 深入解析Python–Currying函数

    本文实例讲述了深入解析Python–Currying函数。分享给大家供大家参考,具体如下: 一,定义:     1) 指的是将原来接受两个参数的函数变成新的接受一个参数的函数的过程。新的函数返回一个以原有第二个参数为参数的函数 …

    编程技术 2025年2月27日
    200
  • Java与Python中单例模式的区别

    本文实例讲述了Java与Python中单例模式的区别。分享给大家供大家参考,具体如下: 单例模式         单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中一个类只有一个实例…

    编程技术 2025年2月27日
    200
  • python实现决策树算法

    本文实例讲述了python实现决策树算法。分享给大家供大家参考,具体如下: from sklearn.feature_extraction import DictVectorizerimport csvfrom sklearn import…

    编程技术 2025年2月27日
    200
  • Python实现LR经典算法

    本文实例讲述了Python实现LR经典算法。分享给大家供大家参考,具体如下: (一)认识Logistic回归(LR)分类器 首先,Logistic回归虽然名字里带“回归”,但是它实际上是一种分类方法,主要用于两分类问题,利用Logistic…

    2025年2月27日 编程技术
    200
  • python实现RSA算法

    本文实例讲述了 python 实现RSA算法。分享给大家供大家参考,具体如下: 一、基础数论 1、互质关系 如果两个正整数,除了1以外,没有其他公因子,我们就称这两个数是互质关系(coprime)。比如,15和32没有公因子,所以它们是互质…

    编程技术 2025年2月27日
    200
  • Python PyQt4实现QQ抽屉效果

    这篇文章主要为大家详细介绍了python pyqt4实现qq抽屉效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了Python PyQt4实现QQ抽屉效果展示的具体代码,供大家参考,具体内容如下 先看截图效果: 主…

    2025年2月27日
    200
  • Python在groupby分组后提取指定位置记录方法

    下面为大家分享一篇python在groupby分组后提取指定位置记录方法,具有很好的参考价值,希望对大家有所帮助。一起过来看看吧 在进行数据分析、数据建模时,我们首先要做的就是对数据进行处理,提取我们需要的信息。下面为大家介绍一些group…

    2025年2月27日
    200

发表回复

登录后才能评论