Maison  >  Questions et réponses  >  le corps du texte

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

我有2个字典,如下:

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

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

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

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

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

伊谢尔伦伊谢尔伦2740 Il y a quelques jours567

répondre à tous(2)je répondrai

  • 怪我咯

    怪我咯2017-04-18 10:26:55

    Il semble qu’un dictionnaire ne devrait pas être utilisé comme ça...
    La réponse que je veux donner est

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

    Mais selon l'exigence, la réponse devrait être

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

    répondre
    0
  • 黄舟

    黄舟2017-04-18 10:26:55

    Comparez la valeur de chaque dictionnaire dans a avec la valeur de chaque dictionnaire dans b. Si la valeur du dictionnaire dans b est supérieure à la valeur du dictionnaire correspondant de a, copiez-la et attribuez-la à 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'}]

    répondre
    0
  • Annulerrépondre