Python 如何从字典中获取值
获取:Python 如何从字典中获取值,python,dictionary,Python,Dictionary,获取: 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 我想得到的是计算125+4=129和7+10+20=37的和 我试过这个: {1: {45:
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
我想得到的是计算125+4=129和7+10+20=37的和
我试过这个:
{1: {45: 125, 3: 4}, 2: {98: 7, 82: 10, 11: 20}}
收到这样的通知:
for u,items in a.items():
for i,counts in items.items():
for count in counts:
print(count)
---------------------------------------------------------------------------
TypeError回溯(最近一次调用上次)
在里面
1表示u,a中的项目。项目()
2对于i,在items中计数。items():
---->3对于计数中的计数:
4打印(计数)
TypeError:“int”对象不可编辑
现在我不知道该怎么做了。你真的很接近了
---------------------------------------------------------------------------
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
解释
在counts.values()调用时发生错误。对于第一个循环的每个迭代,items都是一个字典
for u,items in a.items():
print(sum(items.values()))
129
37
您可以查看下一个循环的计数
for u, items in a.items():
print(items)
{45: 125, 3: 4}
{98: 7, 82: 10, 11: 20}
count是一个整数。如果你想保持你的双循环结构,你可以这样做
for u,items in a.items():
for i, count in items.items():
print(count)
125
4
7
10
20
以下是计算结果的方法:
for u,items in a.items():
sum = 0
for i, count in items.items():
sum += count
print(sum)
129
37
下面是代码中的问题:
result = [sum(dct.values()) for dct in a.values()]
print(result) # [129, 37]
在您的代码中,您试图迭代
计数
,这是int
number很简单,请尝试使用单行
for u,items in a.items():
for i,counts in items.items():
print(counts) # it prints 125, 4, 7, 10, 20
当您处于第二个for循环时,
计数已经是您想要的数字(125、4等)。这是否回答了您的问题?
a = {1: {45: 125, 3: 4}, 2: {98: 7, 82: 10, 11: 20}}
print([sum(values.values()) for key,values in a.items()])