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()])