Skip to main content
 首页 » 编程设计

python之总结字典的值(value)

2025年05月04日24insus

我有一个字典,如下所示:

grocery={ 
    'James': {'Brocolli': 3, 'Carrot': 3, 'Cherry': 5}, 
    'Jill': {'Apples': 2, 'Carrot': 4, 'Tomatoes': 8}, 
    'Sunny': {'Apples': 5, 'Carrot': 2, 'Cherry': 2, 'Chicken': 3, 'Tomatoes': 6} 
} 
food={} 
for a,b in grocery.items(): 
     for i,j in b.items(): 
          food[i]+=(b.get(i,0)) 

我正在尝试计算每种食品的总量,但它没有按预期工作。

例如:我想计算胡萝卜的总数、苹果的总数等等。

上面的代码给我以下错误:

File "dictionary1.py", line 6, in <module> 
      food[i]+=(b.get(i,0)) 
   KeyError: 'Cherry 

如何计算每一项的总和?

请您参考如下方法:

简单地做

从集合导入默认字典

food = defaultdict(int) <-- 每个不存在的键的默认值为 0

..你的代码应该可以工作:)

附言。你得到错误是因为你试图将值添加到未初始化的键......不要假设不存在的键从 0 开始......