ChainMap是dict的子类,拥有dict的所有功能, 感觉用它的地方吧???

from collections import ChainMap

"""
相当于join两个dict的操作 """ # 示例1
dict1 = {"a": 1, "b": 2}
dict2 = {"c": 3, "d": 4} chain_dict = ChainMap(dict1, dict2)
for k, v in chain_dict.items():
print(k, v) '''
打印结果:
c 3
d 4
a 1
b 2
''' print('-' * 50) # 示例2 dict1 = {"a": 1, "b": 2}
dict2 = {"b": 3, "d": 4} chain_dict = ChainMap(dict1, dict2)
for k, v in chain_dict.items():
print(k, v) '''
打印结果: b只出现了一次,就是首次的值
b 2
d 4
a 1 '''
print('-' * 50)
# 示例3
dict1 = {"a": 1, "b": 2}
dict2 = {"c": 3, "d": 4} chain_dict = ChainMap(dict1, dict2) chain_dict.update({'e': 8}) for k,v in chain_dict.items():
print(k,v) '''
c 3
d 4
a 1
b 2
e 8
''' print('-' * 50)
# 示例4
dict1 = {"a": 1, "b": 2}
dict2 = {"c": 3, "d": 4} chain_dict = ChainMap(dict1, dict2) print(chain_dict) # Remove and return an item pair from maps[0]. Raise KeyError is maps[0] is empty.' 感觉没啥用
item = chain_dict.popitem()
print(item) # ('b', 2) # pop也只能弹出chain_map[0]中的元素,有点鸡
value = chain_dict.pop('a')
print(value) #
print(chain_dict) # ChainMap({}, {'c': 3, 'd': 4}) print('-' * 50)
dict1 = {"a": 1, "b": 2}
dict2 = {"c": 3, "d": 4} chain_dict = ChainMap(dict1, dict2) # new_chain_dict = chain_dict.new_child()
# print(new_chain_dict) # ChainMap({}, {'a': 1, 'b': 2}, {'c': 3, 'd': 4}) , 这有啥用呀 # 在chain_map添加一个新的dict
new_chain_dict = chain_dict.new_child({'name':'admin'})
print(new_chain_dict) # ChainMap({'name': 'admin'}, {'a': 1, 'b': 2}, {'c': 3, 'd': 4})

ChainMap简单示例的更多相关文章

  1. Linux下的C Socket编程 -- server端的简单示例

    Linux下的C Socket编程(三) server端的简单示例 经过前面的client端的学习,我们已经知道了如何创建socket,所以接下来就是去绑定他到具体的一个端口上面去. 绑定socket ...

  2. C# 构建XML(简单示例)

    C# 构建XML的简单示例: var pars = new Dictionary<string, string> { {"url","https://www. ...

  3. 根据juery CSS点击一个标签弹出一个遮罩层的简单示例

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...

  4. ACEXML解析XML文件——简单示例程序

    掌握了ACMXML库解析XML文件的方法后,下面来实现一个比较完整的程序. 定义基本结构 xml文件格式如下 <?xml version="1.0"?> <roo ...

  5. demo工程的清单文件及activity中api代码简单示例

    第一步注册一个账户,并创建一个应用.获取app ID与 app Key. 第二步下载sdk 第三步新建工程,修改清单文件,导入相关的sdk文件及调用相应的api搞定. 3.1 修改清单文件,主要是加入 ...

  6. spring-servlet.xml简单示例

    spring-servlet.xml简单示例 某个项目中的spring-servlet.xml 记下来以后研究用 <!-- springMVC简单配置 --> <?xml versi ...

  7. SignalR 简单示例

    一.什么是 SignalR ASP.NET SignalR is a library for ASP.NET developers that simplifies the process of add ...

  8. Web API 简单示例

    一.RESTful和Web API Representational State Transfer (REST) is a software architecture style consisting ...

  9. XML引入多scheme文件约束简单示例

    XML引入多scheme文件约束简单示例,用company.xsd和department.xsd来约束company.xml: company.xsd <?xml version="1 ...

随机推荐

  1. Intellij IDEA中使用Debug调试详解

    转载:https://www.linuxidc.com/Linux/2017-09/146772.htm   Intellij IDEA中使用Debug调试详解 Debug用来追踪代码的运行流程,通常 ...

  2. 无障碍(Accessible Rich Internet Applications)

    可访问性就是让你的网站能够尽可能为越来越多的人可用的做法,这意味着需要竭尽全力不要将任何访问信息的人挡在门外,仅仅因为他们可能有某些方面的残疾或者因为某些个人情况例如他们正在使用的设备.他们的网速.或 ...

  3. Vue知识整理1:$watch方法的使用

    如下图所示:vue中,可以使用$watch方法显示变量的前面值和当前值,方便进行判断.使用方法: vm.$watch('a',function(newval,oldval){ ...... })

  4. kafka 和 rocketMQ 的数据存储

    kafka 版本:1.1.1 一个分区对应一个文件夹,数据以 segment 文件存储,segment 默认 1G. 分区文件夹: segment 文件: segment 的命名规则是怎样的? kaf ...

  5. Powershell指令集_2

    目录 目录 获取证书 Get-Childitem 调用REST API Invoke-RestMethod 选择对象属性 Select-Object 导入模块 Invoke-Expression 路径 ...

  6. 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_05 IO字符流_4字符输出流的基本使用_写出单个字符

    写完之后不刷新,则没有数据.数据只是写如到了内存缓冲区中 必须要调用flush方法,把数据刷新过去 close关闭的时候也会把数据刷新到文件中.这里把flush注释了也是可以的

  7. sql 语句 的一些优化小总结

    1.用exists 代替 in 原理:exists 是存在一个即返回一个 而in是做全盘扫描得出所有条件内的数据 (高效) and exists (select 'x' from Person whe ...

  8. idea 社区版本创建javaweb项目 使用tomcat

    1.创建maven  webapp项目 2.pom文件添加依赖及tomcat7-maven-plugin插件 <dependencies> <dependency> <g ...

  9. CentOS7 iptables安装及操作

    添加规则时的考量点: (1)要实现哪种功能:判断添加在哪张表上: (2)报文流经的路径:判断添加在哪个链上: 链上规则的次序: (1)同类规则(访问同一应用),匹配范围小的放上面: (2)不同类规则( ...

  10. [2019杭电多校第七场][hdu6651]Final Exam

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6651 题意:n个科目,总共m分,通过一科需要复习花费科目分数+1分钟,在不知道科目分数的情况下,问最少 ...