我有一个字典,如下所示:
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 开始......
