【发布时间】:2013-12-09 21:50:38
【问题描述】:
给定一个字典和一个字符串作为参数,返回一个新字典,其中包含指定为类别的项目(第二个参数,'city'、'sport'、'name' 之一)作为键和它的关联值。如果该项目不止一次出现,则取值的总和。
例如。
>>> get_wins_by_category(d, 'city')
{'Toronto': 34, 'Ottawa': 45}
>>> get_wins_by_category(d, 'sport')
{'basketball': 31, 'hockey': 48}
>>> get_wins_by_category(d, 'name')
{'Raptors': 10, 'Blues': 21, 'Senators': 45, 'Leafs': 3}
到目前为止我得到了什么:
d = {('Raptors', 'Toronto', 'basketball'): 10,
('Blues', 'Toronto', 'basketball'): 21,
('Senators', 'Ottawa', 'hockey'): 45,
('Leafs', 'Toronto', 'hockey'): 3}
def get_wins_by_category(dct, category):
new_dict = {}
if category == 'city':
for key in dct.keys():
new_dict[key[1]] = #todo
elif category == 'sport':
for key in dct.keys():
new_dict[key[2]] = #todo
elif category == 'name':
for key in dct.keys():
new_dict[key[0]] = #todo
return new_dict
我的问题是等号后写什么。我知道,如果该项目不止一次出现,它采用包含该项目的所有值的总和,但我不知道如何将其编写为代码。另请注意,三元组将始终按以下顺序排列:姓名、城市、运动。
【问题讨论】:
-
我从来没有想过使用元组作为字典中的键。
标签: python dictionary key