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,……}
这边因为数据库比较大直接追加加到一个新的列表是跑不出来的,所以请教一下大神们有什么办法,重复的也要
使用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)
List=[{'pak1':1,'psja':34,'padg':46}, {'pare':364, 'pjdy':3},{'psuy':51}]
d =List[0]
a = [d.update(_) for _ in List[1:]]
print(d)
用reduce函数吧。
>>> from functools import reduce
>>> d = [{'a':1, 'b':2}, {'c':3}, {'d':4}, {'c':5}]
>>> reduce(lambda a,b:a|b, d)
{'a': 1, 'b': 2, 'c': 5, 'd': 4}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!