Skip to main content
 首页 » 编程设计

python之访问字典中子字典中的值

2025年05月04日12soundcode

你好,我有一本看起来像这样的字典:

dictionary = {'John': {'car':12, 'house':10, 'boat':3}, 
              'Mike': {'car':5, 'house':4, 'boat':6}} 

我想获得访问权限并提取子词典中的键并将它们分配给这样的变量:

cars_total = dictionary['car'] 
house_total = dictionary['house'] 
boat_total = dictionary['boat'] 

现在,当我运行上面的变量时,出现“键错误”。这是可以理解的,因为我需要先访问外部字典。如果有人在如何访问子字典中的键和值方面提供帮助,我将不胜感激,因为这些是我想要使用的值。

我也想创建一个新 key ,这可能不正确,但在这些方面:

    car = dictionary['car'] 
    house = dictionary['house'] 
    boat = dictionary['boat'] 
 
dictionary['total_assets'] = car + house + boat  

我希望能够访问字典中的所有这些键并创建一个新键。诸如“John”和“Mike”之类的外部 key 都应在末尾包含新制作的 key 。 我知道这会引发错误,但它会让您了解我想要实现的目标。感谢您的帮助

请您参考如下方法:

我只会使用 Counter 对象来获取总数:

>>> from collections import Counter 
>>> totals = Counter() 
>>> for v in dictionary.values(): 
...     totals.update(v) 
... 
>>> totals 
Counter({'car': 17, 'house': 14, 'boat': 9}) 
>>> totals['car'] 
17 
>>> totals['house'] 
14 
>>> 

这有一个额外的好处,即使键并不总是存在,也能很好地工作。

如果您想要总 Assets ,则可以简单地对这些值求和:

>>> totals['total_assets'] = sum(totals.values()) 
>>> totals 
Counter({'total_assets': 40, 'car': 17, 'house': 14, 'boat': 9}) 
>>>