qq_43601497 2021-11-06 16:20 采纳率: 80%
浏览 46
已结题

Python基础问题,列表里面包含很多个字典,怎么把他们拼接成一个字典?

List=[{pak1:1,psja:34,padg:46},{pare:364,pjdy:3},{psuy:51}……]

我需要把他们拼接成这样的形式

Dict={pak1:1,psja:34,padg:46,pare:364,pjdy:3,psuy:51,……}

这边因为数据库比较大直接追加加到一个新的列表是跑不出来的,所以请教一下大神们有什么办法,重复的也要

  • 写回答

4条回答 默认 最新

  • CSDN专家-HGJ 2021-11-06 17:15
    关注

    使用collections 中的defaultdict,将重复键的值写入一个列表中:

    from collections import defaultdict
    
    lst=[{'pak1':1,'psja':34,'padg':46},{'pare':364,'pjdy':3},{'psuy':51,'psja':18}]
    new = defaultdict(list)
    for d in lst:    
        for k ,v in d.items():
            if k in new:
                new[k].append(v)
            else:            
                new[k]=[v]
    new1={}
    for k,v in new.items():
        if  len(v)==1:
            new1.update({k:v[0]})
        else:
            new1.update({k:v})
    print(new1)
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 3月15日
  • 已采纳回答 3月7日
  • 创建了问题 11月6日