找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 2488|回复: 2

[求助] 请问怎么对嵌套字典的列表的内容求和

1

主题

1

帖子

1

积分

贫民

积分
1
wangjyl34 发表于 2019-10-25 11:06:10 | 显示全部楼层 |阅读模式
有两个嵌套字典的列表,格式和长度相同,请问怎么对其中的内容求和

例如
[{'a': '1.0', 'b': '2.0', 'c': '3.0'}, {'a': '4.0', 'b': '5.0', 'c': '6.0'}]
[{'a': '7.0', 'b': '8.0', 'c': '9.0'}, {'a': '10.0', 'b': '11.0', 'c': '12.0'}]
变成
[{'a': '8.0', 'b': '10.0', 'c': '12.0'}, {'a': '14.0', 'b': '16.0', 'c': '18.0'}]

谢谢!
回复

使用道具 举报

0

主题

956

帖子

956

积分

圣骑士

积分
956
sheeboard 发表于 2019-10-31 00:42:27 | 显示全部楼层
from collecti** import Counter
list1=[{'a': '1.0', 'b': '2.0', 'c': '3.0'}, {'a': '4.0', 'b': '5.0', 'c': '6.0'}]
list2=[{'a': '7.0', 'b': '8.0', 'c': '9.0'}, {'a': '10.0', 'b': '11.0', 'c': '12.0'}]
def transt(lis):
    for sub in lis:
        for key in sub:
            if isinstance(sub[key],str):
                sub[key]=float(sub[key])
            else:
                sub[key]=str(sub[key])
transt(list1)
transt(list2)
list3=[dict(Counter(list1[0])+Counter(list2[0])),dict(Counter(list1[1])+Counter(list2[1] )]
transt(list3)
回复 支持 反对

使用道具 举报

0

主题

102

帖子

102

积分

侠客

积分
102
傻眼貓咪 发表于 2021-8-6 15:29:15 | 显示全部楼层
  1. a = [{'a': '1.0', 'b': '2.0', 'c': '3.0'}, {'a': '4.0', 'b': '5.0', 'c': '6.0'}]
  2. b = [{'a': '7.0', 'b': '8.0', 'c': '9.0'}, {'a': '10.0', 'b': '11.0', 'c': '12.0'}]
  3. c = []
  4. for i in range(len(a)):
  5.     key = list(a[i].keys())
  6.     val1 = list(a[i].values())
  7.     val2 = list(b[i].values())
  8.     val3 = [eval(''.join(val1[j]+'+'+val2[j])) for j in range(len(val1))]
  9.     dic = {}
  10.     for j in range(len(key)): dic[key[j]] = val3[j]
  11.     c.append(dic)
  12. print(c)
复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表