玩蛇网提供最新Python编程技术信息以及Python资源下载!

合并list和字典最不容易出错又简洁的python方法是什么?求解

我有2个字典,如下:

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

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

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

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

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

字典貌似不应该这样用的吧……
我想给出的答案是

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]

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'}]

玩蛇网文章,转载请注明出处和文章网址:https://www.iplaypy.com/wenda/wd13782.html

相关文章 Recommend

玩蛇网Python互助QQ群,欢迎加入-->: 106381465 玩蛇网Python新手群
修订日期:2017年05月23日 - 16时46分47秒 发布自玩蛇网

您现在的位置: 玩蛇网首页 > Python问题解答 > 正文内容
我要分享到:

必知PYTHON教程 Must Know PYTHON Tutorials

必知PYTHON模块 Must Know PYTHON Modules