Python合并2个字典成1个新字典的9种方法
方法1,使用两次update方法向字典中添加元素
d1 = {'name': 'revotu', 'age': 99}
d2 = {'age': 24, 'sex': 'male'}d = {}
d.update(d1)
d.update(d2)
print(d)#输出:
{'name': 'revotu', 'age': 24, 'sex': 'male'}
方法2,先复制,后更新
d1 = {'name': 'revotu', 'age': 99}
d2 = {'age': 24, 'sex': 'male'}
d = d1.copy()
d.update(d2)
print(d)#输出:
{'name': 'revotu', 'age': 24, 'sex': 'male'}
方法3,字典构造器
d1 = {'name': 'revotu', 'age': 99}
d2 = {'age': 24, 'sex': 'male'}
d1 = {'name': 'revotu', 'age': 99}
d2 = {'age': 24, 'sex': 'male'}
d = dict(d1)
d.update(d2)
print(d)#输出:
{'name': 'revotu', 'age': 24, 'sex': 'male'}
方法4,关键字参数hack
只有一行代码,看上去很酷,但是有一个问题,这种hack技巧只有在字典的键是字符串时才有效。
d1 = {'name': 'revotu', 'age': 99}
d2 = {'age': 24, 'sex': 'male'}
d = dict(d1, **d2)
print(d) #输出:
{'name': 'revotu', 'age': 24, 'sex': 'male'}
方法5,字典推导式,字典推导式方法满足要求,只是嵌套的字典推导式,不那么清晰,不易于理解。
d1 = {'name': 'revotu', 'age': 99}
d2 = {'age': 24, 'sex': 'male'}
d = {k: v for d in [d1, d2] for k, v in d.items()}
print(d)#输出:
{'name': 'revotu', 'age': 24, 'sex': 'male'}
方法6,元素拼接
d1 = {'name': 'revotu', 'age': 99}
d2 = {'age': 24, 'sex': 'male'}
d = dict(list(d1.items()) + list(d2.items()))
print(d)#输出:
{'name': 'revotu', 'age': 24, 'sex': 'male'}
方法7,chain items
d1 = {'name': 'revotu', 'age': 99}
d2 = {'age': 24, 'sex': 'male'}
from itertools import chain
d1 = {'name': 'revotu', 'age': 99}
d2 = {'age': 24, 'sex': 'male'}d = dict(chain(d1.items(), d2.items()))
print(d)#输出:
{'name': 'revotu', 'age': 24, 'sex': 'male'}
方法8,itemscollections.ChainMap可以将多个字典或映射,在逻辑上将它们合并为一个单独的映射结构
这种方法也很pythonic,而且也是通用方法
from collections import ChainMap
d1 = {'name': 'revotu', 'age': 99}
d2 = {'age': 24, 'sex': 'male'}d = dict(ChainMap(d1, d2))
print(d) #输出:
{'name': 'revotu', 'age': 24, 'sex': 'male'}
方法9,字典拆分
在Python3.5+中,可以使用一种全新的字典合并方式,这行代码很pythonic
d1 = {'name': 'revotu', 'age': 99}
d2 = {'age': 24, 'sex': 'male'}
d = {**d1, **d2}
print(d) #输出:
{'name': 'revotu', 'age': 24, 'sex': 'male'}
Python合并2个字典成1个新字典的9种方法相关推荐
- python两个字典合并为一个新字典_Python合并2个字典成1个新字典的方法(9种)
字典是Python语言中唯一的映射类型. 映射类型对象里哈希值(键,key)和指向的对象(值,value)是一对多的的关系,通常被认为是可变的哈希表. 字典对象是可变的,它是一个容器类型,能存储任意个 ...
- Python 炫技操作(九):调用函数的九种方法
系列导读 Python 炫技操作(一):条件语句的七种写法 Python 炫技操作(二):合并字典的七种方法 Python 炫技操作(三):判断是否包含子串的七种方法 Python 炫技操作(四):连 ...
- python 运算符重载_Python 炫技操作:模块重载的五种方法
点击上方"Python编程时光",选择"加为星标"第一时间关注Python技术干货!明哥原创的200页<PyCharm 中文指南> 震撼发布 系列文 ...
- 用python 合并 excel多行成一行
您可以使用 pandas 库来合并多行数据为一行.具体步骤如下: 安装 pandas:在命令行中输入 pip install pandas. 导入 pandas:在您的代码文件中输入 import p ...
- python骂人的程序_Python实现敏感词过滤的4种方法
在我们生活中的一些场合经常会有一些不该出现的敏感词,我们通常会使用*去屏蔽它,例如:尼玛 -> **,一些骂人的敏感词和一些政治敏感词都不应该出现在一些公共场合中,这个时候我们就需要一定的手段去 ...
- python字符串中某个字符修改_Python中修改字符串的四种方法
在Python中,字符串是不可变类型,即无法直接修改字符串的某一位字符. 因此改变一个字符串的元素需要新建一个新的字符串. 常见的修改方法有以下4种. 方法1:将字符串转换成列表后修改值,然后用joi ...
- python可以实现哪些功能_Python中实现机器学习功能的四种方法介绍
本篇文章给大家带来的内容是关于Python中实现机器学习功能的四种方法介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 在本文中,我们将介绍从数据集中选择要素的不同方法; 并使用S ...
- datetime 比较_Python 字典中key命中取值的两种方法性能比较!
起步 从字典中取值有两个方法,一个是先判断key是否在字典中再取值:另一个是包裹try块中直接去取值: Python资源共享群:484031800 def use_in(d, key):if key ...
- python变量域名_Python实现从url中提取域名的几种方法
从url中找到域名,首先想到的是用正则,然后寻找相应的类库.用正则解析有很多不完备的地方,url中有域名,域名后缀一直在不断增加等.通过google查到几种方法,一种是用Python中自带的模块和正则 ...
最新文章
- 2020年,5种将死的编程语言
- mysql七个模块_mysql(pymysql模块的使用,视图,触发器)
- svn 部署问题总结
- OVH数据中心失火事件关于运维管理的思考
- 通过通用数据访问扩展AWS生态系统
- 抗侧力构件弹性位移如何计算_说一说现在很火的装配式建筑怎么计算?
- 如何使用Python操作MySQL数据库
- reset java_Java PushbackReader reset()用法及代码示例
- CSS3常用功能 旋转等
- IDEA插件-Translation提示更新TKK失败,配置有道翻译解决
- MOT-Machine Learning Methods for Solving Assignment Problems in Multi-Target Tracking
- SQL 考勤打卡问题
- Windows XP中的命令行界面
- 虚幻引擎4初探(UE4)
- IEEEE trans模板中怎么使用algorithm2e
- DataTables如何重新加载数据
- 财商帮解读:高质量的社群都离不开这10个关键要素!
- python模块-win32clipboard-访问windows剪切板-实现复制粘贴
- HTML jQuery实现点赞功能(模仿CSDN的样式)
- pr制作马赛克的效果,动态光效素材应用,
热门文章
- web 埋点实现原理了解一下
- 基于Vue.js的精选壁纸推荐单页应用
- dedecms教程:搜索页显示条数更改
- 防火墙未开启导致通过redis篡改.ssh/authorized_keys
- Java学习日志(23-3-网络编程-TCP)
- HDU 1618 Oulipo KMP解决问题的方法
- unity加载sprite_Unity 分离贴图 alpha 通道实践
- pip install pygame_使用 Python 和 Pygame 模块构建一个游戏框架!
- 【温故知新】CSS学习笔记(后代和子代选择器)
- 【MM模块】Schedule Agreement 计划协议