python算法,如何优雅的合并2个列表字典?

 爷W很幸福_448 发布于 2022-10-26 19:13

我有2个字典,如下:

a = [{'泉州seo': '2,1'}, {'泉州网站建设': '1'}, {'泉州网络公司': ''}, {'泉州微信小程序': ''}]

b = [{'泉州seo': ''}, {'泉州网站建设': ''}, {'泉州网络公司': ''}, {'泉州微信小程序': '15,34'}]

2个字典分别存放的是我一些数据,我现在想要的效果是把a和b合并起来显示,比如这样:

 c = [{'泉州seo': '2,1'}, {'泉州网站建设': '1'}, {'泉州网络公司': ''}, {'泉州微信小程序': '15,34'}]

就是这样一个简单的效果!
请问要如何用最简单的代码来实现!
欢迎高手挑战!

2 个回答
  • a中每个字典的值和b中每个字典的值对比,如果b中字典的值比a相应字典的值大,就copy过来,然后赋值给c.

    >>> a = [{'s1': '2,1'}, {'s2': '1'}, {'s3': ''}, {'s4': ''}]
    >>> b = [{'s1': ''}, {'s2': ''}, {'s3': ''}, {'s4': '15,34'}]
    >>> for i in range(len(a)):
            if cmp(a[i],b[i]) < 0:
                a[i] = b[i].copy()
    
            
    >>> c = a
    >>> print c
    [{'s1': '2,1'}, {'s2': '1'}, {'s3': ''}, {'s4': '15,34'}]
    2022-10-27 01:35 回答
  • 字典貌似不应该这样用的吧……
    我想给出的答案是

    c = {k:d1[k]+d2[k] for d1,d2 in zip(a,b) for k in d1}

    不过根据要求答案应该是

    c = [{k:d1[k]+d2[k]} for d1,d2 in zip(a,b) for k in d1]
    2022-10-27 01:35 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有