Это вопрос, основанный на вложенных словарях.Найти сумму значений в пределах значений вложенного словаря
Нам предоставляется вложенный словарь, в котором во внешнем словаре указано имя совпадения, а значение для совпадений - это другой словарь с его ключом и значениями соответственно, а имя функции - orangecap(d)
, которое принимает словарь в нижнем формате.
Вот образец.
d = {'match1':{'player1':57, 'player2':38}, 'match2':{'player3':9, 'player1':42}, 'match3':{'player2':41, 'player4':63, 'player3':91}}
Поэтому я хотел бы найти ключ игрока и рассчитать общую сумму для каждого игрока и вернуть наибольшую сумму.
Так что выход должен быть ('player3', 100)
Это то, что я пытался до сих пор, но безрезультатно:
def orangecap(d):
total=0
for key,value in d.items():
for value in d.items():
if d[key] in d.keys():
total = total+d[value]
return(d[key],max(total))
Вы можете использовать 'defaultdict (Int)' иметь значение по умолчанию 0 вместо лямбда :) – Karin
@Karin О, это круто, ты прав, ТНХ! – BPL