Учитывая словарь и строку в качестве параметров, верните новый словарь, содержащий элемент, указанный в качестве категории (второй параметр, один из «города», «спорт» ',' name ') в качестве ключа и связанного с ним значения. Если имеется более одного вхождения элемента, чем принимать сумму значений.Сумма всех значений в словаре, которая содержит элемент в ключе
Ex.
>>> 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
Проблема у меня есть, что писать после знака равенства. Я знаю, что если есть несколько элементов элемента, которые берут сумму всех значений, содержащих этот элемент, но я не знаю, как записать его в качестве кода. Также обратите внимание, что 3-кортеж всегда будет в таком порядке: имя, город, спорт.
Я никогда не думал об использовании кортежа в качестве ключа в словаре. – TehTris