python合并两个列表中的字典得方法
admin
2023-02-14 15:40:03
0

前几天有个小伙伴有这么一个需求:

l1 = [{x: x} for x in range(10)]

l2 = [{x: x} for x in range(10, 20)]

想要实现如下的结果:

[{0: 0, 10: 10}, {1: 1, 11: 11}, {2: 2, 12: 12}, {3: 3, 13: 13}, {4: 4, 14: 14}, {5: 5, 15: 15}, {6: 6, 16: 16}, {7: 7, 17: 17}, {8: 8, 18: 18}, {9: 9, 19: 19}]

也是说l1和l2 中的字典依次合并成一个的新的字典,要实现这个的方法很多,这里用 {x, y} 的方式来实现下,我们先来看下{x, y}的用法:

假设有两个dict d1和d2,合并成一个新的dict,不改变 d1和d2的值,例如

d1 = {"a":1, "b":2}
d2 = {"c":3, "d":4}

希望得到一个新的结果d3,如果key相同,则用d2的value 覆盖d1的value:

d3= {'a': 1, 'b': 3, 'c': 4}

python3.5+中已经实现一个语法糖,我们来一起看下:

d3 = {**d1, **d2}

好了,我们既然知道了有这么一个语法,现在我们实现下合并列表l1 和列表l2的里面的字典,以下代码仅为抛砖引玉,代码如下:

l1 = [{x: x} for x in range(10)]

l2 = [{x: x} for x in range(10, 20)]

l3 = []

for x, y in zip(l1,l2):    

    l3.extend([{**x, **y}])

print(l3)

这里使用{x, y} 合并字典的语法糖,并且借用了列表的extend 来实现我们的需求

相关内容

热门资讯

委内瑞拉持续举行抗议游行,要求... 当地时间1月13日,委内瑞拉运输业者在首都加拉加斯举行大型游行集会,逾万名民众驾乘摩托车汇成车流,要...
摩尔线程联合智源人工智能研究院... 北京商报讯(记者 陶凤 王天逸)1月13日,摩尔线程发布消息称,公司联合北京智源人工智能研究院(以下...
人民日报:破解未成年人网游过度... 企业恪守商业道德,家长履行好监护职责——合力破解未成年人网游过度充值问题本报记者 齐志明《人民日报》...
新闻史学家方汉奇人民日报撰文:... 百岁人生只做一件事(大家谈人生)方汉奇《人民日报》(2026年01月14日 第 20 版)我今年10...
曝三星正研发两款Galaxy智... IT之家 1 月 13 日消息,据科技媒体 Sammobile 今天报道,三星在去年推出了 Gala...
中简科技:拓展碳纤维多场景应用 证券之星消息,中简科技(300777)01月13日在投资者关系平台上答复投资者关心的问题。 投资者提...
璧山“人工智能+3D数字内容生... 梦界空间数字经济产业园 日前,工业和信息化部、教育部、文化和旅游部、国家广播电视总局四部门联合发布“...
神木瑞诚煤化取得离心机筛篮清洗... 国家知识产权局信息显示,神木市瑞诚煤化有限公司取得一项名为“离心机筛篮清洗设备”的专利,授权公告号C...
“委内瑞拉问题,很可能成为套在... 据路透社1月14日报道,美国国务卿鲁比奥在特朗普第二届政府内权势煊赫,身兼国务卿与国安顾问数职,这一...
马来西亚将对社交媒体平台X采取... 新华社吉隆坡1月13日电(记者王嘉伟)马来西亚通信和多媒体委员会13日表示,美国企业家埃隆·马斯克旗...