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

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日

悬赏问题

  • ¥15 想问一下树莓派接上显示屏后出现如图所示画面,是什么问题导致的
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号