打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
列表中的元素都是字典,目的是把所有元素合成为一个字典,怎么破?

翠华摇摇行复止,西出都门百余里。

大家好,我是皮皮。

一、前言

前几天在Python最强王者交流群【群除我佬】问了一个Python基础的问题,这里拿出来给大家分享下。

二、实现过程

这里一共整理了5个方法,一起来看看吧!

方法一:for循环

使用for循环的确可行,但是感觉应该有其他更好的方法。详情见第一部分的截图。

方法二:解包

这里【吴超建】给了一个代码,如下图所示:

通过不断的解包,也是可以的,还好这里只有3个元素,如果有上百个元素的话,这么写,容易崩溃。

方法三:functools

后来【DIY】提供了一个方法,如下图所示:

代码如下:

import functools

a = [{'a': 1}, {'b': 2}, {'c': 3}]

b = functools.reduce(lambda x, y: dict(**x, **y), a)
print(b)

方法四:map

后来【隔壁😼山楂】也给了一个代码,使用map,轻易搞定,代码如下所示:

方法五:chainMap

最后这个方法是【~上善居士~ *郭百川】提供的,要想合并多个字典),可以考虑用chainMap,建立多个字典合并的一个映射,一般用于数据查找,缺点就是键值查找只会从第一个字典开始找,第一个没有才找第二个。你这个列表中每个字典都只有一个键值对而且无重复,直接下面酱紫也可以。

代码如下:

一般要迭代生成新序列,首先应该想到的是各种推导式,然后才是map,推导式比map速度快一点点,这在大佬的书里有例子实证。

三、总结

大家好,我是皮皮。这篇文章主要盘点了一个Python处理字典的问题,文中针对该问题,给出了具体的解析和代码实现,一共5个方法,帮助粉丝顺利解决了问题。

最后感谢粉丝【群除我佬】提问,感谢【DIY】、【吴超建】、【隔壁😼山楂】、【上善居士~郭百川】给出的思路和代码解析,感谢【eric】等人参与学习交流。

------------------- End -------------------

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
map()函数reduce()函数--python
Python中堪称神仙的6个内置函数
妙不可言!使用 Python 管道 Pipe 编写代码如此优雅!
你必须掌握的20个python代码,短小精悍,用处无穷
矩阵各行元素之和
Python 最频繁使用的4个函数:lambda、 map、filter 和 reduce
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服