python - 如何从字典中获取值
问题描述
a = dict()
uid1 = 1
uid2 = 2
a[uid1] = {}
a[uid2] = {}
iid1 = 45
iid2 = 98
iid3 = 3
iid4 = 82
iid5 = 11
a[uid1][iid1] = 125
a[uid2][iid2] = 7
a[uid1][iid3] = 4
a[uid2][iid4] = 10
a[uid2][iid5] = 20
得到:
{1: {45: 125, 3: 4}, 2: {98: 7, 82: 10, 11: 20}}
我想要得到的是计算 125+4=129 和 7+10+20=37 的总和
我试过这个:
for u,items in a.items():
for i,counts in items.items():
for count in counts:
print(count)
收到这样的通知:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-48-8b6a2dace81e> in <module>
1 for u,items in a.items():
2 for i,counts in items.items():
----> 3 for count in counts:
4 print(count)
TypeError: 'int' object is not iterable
现在我不知道如何进行。
解决方案
很简单,试试单行。
a = {1: {45: 125, 3: 4}, 2: {98: 7, 82: 10, 11: 20}}
print([sum(values.values()) for key,values in a.items()])
推荐阅读
- angular - 将数组映射到 Angular 材质树 - Angular 9
- android - 使用 keytool 构建的每个 .keystore 文件是否都是唯一的?
- azure - 在 ARM 模板中应用 Azure Key Vault no-self-perms 属性
- apache-flink - Flink:启动 scala-shell 时出错 - 无法创建 DispatcherResourceManagerComponent
- css - 如何使 WP_Error 消息出现在密码字段下?
- html - 无法实现持仓
- android - LiveData、DiffUtil 和对象引用
- java - 一旦片段可见,有没有办法运行方法?
- google-apps-script - 如何测试标记为“自动拒绝新会议和现有会议”的 Google 日历活动
- dc.js - 如何在 dc.js 中呈现时间序列/分类堆积条形图,过滤堆栈和条形图