python - 如何在 Python 中选择字典的常用键和求和值?
问题描述
我有一个嵌套字典列表,我想选择 key= 的 key:value 对,value
并对所有值求和。我怎么能用一行代码做到这一点?
[{'default': {'AA': {'quantity': 0.05215832, 'value': 2940.4440669952},
'BB': {'quantity': 493.96434168, 'value': 888.9823555432}},
'basic': {'CC': {'quantity': 911.84309821, 'value': 911.84309821}},
'expert': {'DD': {'quantity': 0.00833, 'value': 0.036579529000000006},
'AA': {'quantity': 0.000823, 'value': 0.303896042},
'RR': {'quantity': 0.000166, 'value': 0.0035026000000000002},
'FF': {'quantity': 0.00183, 'value': 0.057991785}}}]
我可以选择键:
[[d[i].keys() for i in [k for k, v in d.items()]]]
但我无法更进一步。
解决方案
我相信这就是你要找的。
lst = [{'default': {'AA': {'quantity': 0.05215832, 'value': 2940.4440669952},
'BB': {'quantity': 493.96434168, 'value': 888.9823555432}},
'basic': {'CC': {'quantity': 911.84309821, 'value': 911.84309821}},
'expert': {'DD': {'quantity': 0.00833, 'value': 0.036579529000000006},
'AA': {'quantity': 0.000823, 'value': 0.303896042},
'RR': {'quantity': 0.000166, 'value': 0.0035026000000000002},
'FF': {'quantity': 0.00183, 'value': 0.057991785}}}]
lst_sum = sum(value['value'] for key in lst[0].keys() for value in lst[0][key].values())
print(lst_sum)
# Prints 4741.6714907044
这将执行列表推导,然后总结所有值。它首先遍历每个级别('default'
、'basic'
和'expert'
),然后遍历它的每个字母对('AA'
、'BB'
等)。
推荐阅读
- oracle - 触发器中 ORA-06512 中的未识别错误
- sql-server - 获取购买前的最后一个事件
- javascript - 用js编写的二次公式求解器不起作用
- ubuntu - Apache - 随机中断
- maven - Maven 战争中的代码未更新
- ruby - FireStore for Ruby - 如何订阅文档更改
- reactjs - 使 React Router 与 IIS 一起工作
- javascript - 如何使用 materialwebcomponents 创建基本的 Node.js 项目?
- html - 可以使相同的html表单输入出现在两个不同的地方吗?
- inheritance - 从 F# 生成类型提供程序提供的类型继承