目录
前言
容器数据类型包括数组list,字典dict以及元组tuple等。本篇,将详细介绍ChainMap字典序列的使用。

ChainMap
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是按子映射传递到构造函数的顺序来搜索这些子映射。
重排列
其实,这种子映射的顺序在maps属性中,我们直接通过它增加新映射,或者改变映射的顺序。比如上面映射c是取的a字典中的值,那么我们直接颠倒顺序,就可以取b的值。
import collections
a = {"a": "A", "c": "c", }
b = {"b": "B", "c": "D", }
col = collections.ChainMap(a, b)
#颠倒顺序
col.maps = list(reversed(col.maps))
for key, value in col.items():
print(key, value)
运行之后,效果如下:
这里函数reversed()很好理解,就是颠倒英文的意思。
更新值
ChainMap归并子映射的值,应该如何更改呢?其实不管你是直接更新基本的子映射值,还是更新ChainMap对象的值。都会将子映射与ChainMap对象的值同时改变。
import collections
a = {"a": "A", "c": "c", }
b = {"b": "B", "c": "D", }
col = collections.ChainMap(a, b)
col['c'] = 'Z'
print(col['c'])
#变更回来
col['c'] = 'c'
a['c'] = 'Z'
print(col['c'])
运行之后,效果如下:
那么如果保证不更改掉原理的底层的数据结构呢?答案是通过new_child()创建一个新的ChainMap。具体代码如下:
import collections
a = {"a": "A", "c": "c", }
b = {"b": "B", "c": "D", }
col = collections.ChainMap(a, b)
col2 = col.new_child()
print(col)
print(col2)
print("--------------------------")
col2['c'] = 'Z'
print(col)
print(col2)
运行之后,效果如下:
可以看到,new_child()提供了一个额外的映射在最前面。正是这种基于堆栈的思维,我们很容易在一次迭代中增加或更新值,然后在下一次迭代中丢弃这些改变。
相关推荐:
ChatGPT无法加载?检查网络并尝试重启,助您快速恢复畅通体验,burj ai
SEO赚钱:如何通过SEO技能在网络上实现财富自由,网站怎么建设推广平台
AI搜索相似文章怎么做?揭秘高效文章检索的核心技术!,程式ai软件
seo灰帽是什么,灰帽是指什么 ,ai绘画六边形
seo要学什么技术,seo要学什么技术好 ,ai.fale
什么是亚马逊seo策略,亚马逊的seo推广是什么 ,天天学术ai写作优惠券
为什么选择SEO会员服务,让您的网站流量飞速增长,靖边专业网站建设公司
seo站内关键词优化,seo关键词优化经验技巧 ,ai 优点
360关键:打造全方位安全保护,守护您的数字世界,ai乘bi
AI自动化:开启智能未来的无限可能,simplify ai
什么是seo运营,什么是seo营销 ,ai绘画沙地
seO经理是什么岗位,seo经理招聘 ,ai写作重复被查
SEO抢权:如何在竞争激烈的市场中占得先机,正规网站建设口碑好
SEO运维:提升网站排名的核心战略,邢台网站建设优化建站
ChatGPT的诞生,预示着人工智能大规模应用的时代已经来临,ai此生不渝
SEO快速优化排名:助你网站跃升搜索引擎首页,ai彩虹立体9怎么做
专业关键词助力SEO优化,让你的内容脱颖而出,东营响应式网站优化
SEO技巧提升网站流量和排名,助力企业快速崛起,ai080206.
ChapGPT免费爬墙,轻松访问全球互联网资源!,蜜桃ai插画
SEO怎么设置:让你的网站快速登上搜索引擎首页的秘密,Ai压印分色
好用的AI写作软件免费推荐:创作新境界!
SEO做好,企业网站流量翻倍的关键,seo白帽技术有哪些
中国AI软实力崛起:技术创新与产业应用的完美融合,seo0066
seo网站编辑是做什么,seo网站编辑可在家兼职 ,ai慢直播
“多网建站”助力企业跨越发展,开启全新数字化时代,海南网站优化电池
为什么越来越多的人选择在知乎发布文章?这里面的机会你可能还没发现!,潍坊关键词排名提升
2024年AI写文章生成器推荐:让创作轻松高效,提升写作水平
SEO通过-如何通过SEO优化让你的业务在搜索引擎中脱颖而出,保定网站建设推广专家
seo软件叫什么,seo软件视频教程 ,eps ai 缩略图
SEO部:开启数字化营销新纪元的幕后英雄,株洲营销推广是什么公司
SEO大量优化:如何通过精准策略提升网站流量,突破搜索引擎排名瓶颈,吕梁本地网站推广平台
SEO提高:如何通过精准优化让网站流量翻倍,优化排名seo加盟费用
AI写作的崛起-“只能AI写作”背后的巨大潜力,舞狮摄影ai
ChatGPT无服务:如何突破限制,未来人工智能的新可能,ai绘制装饰画
2025年SEO最新技术:让你的网站脱颖而出!,ai少女特色
AI网页效果生成:开启网站设计的新纪元,ai画线祥云
在线AI文章生成:智能写作的无限可能
SEO小白必看!从零起步SEO的秘诀,轻松提升网站排名,南京网站运营优化平台
优化收费,助力企业提升效益,实现共赢,宜州餐饮网站建设
SEO王:掌控搜索引擎优化的至高法则,助力企业飞速腾飞,网站动作优化在哪里下载
seo线索收集是什么,seo线索收集是什么意思 ,ai生活ai童童
ChatGPT安装包Windows版-让智能助手触手可得,q和ai
360排名优化价格:打造高效网络营销的制胜法宝,ai换脸刘浩存自wei
SEO搜索关键词是什么意思?全方位解析关键词优化的核心要素,lol ai图片
AI免费写文章:让创作变得轻松高效
ChatGPT-4中文免费破解版:无需付费,体验最强AI助手,ai写作生成器官方下载
SEO希望:如何通过SEO优化实现网站突破,迈向成功之路,品牌网站推广软件
ChatGPT怎么突然不能打开了?你需要了解的原因与解决办法,ai写作有什么问题吗怎么解决
自动生成文章的AI软件,助力内容创作的未来
seo诊断什么意思,seo诊断a5 ,约瑟夫ai