Вычитание по значениям словаря из повторного итога в For Loop Python
Работа в Python 2.7.
У меня есть словарь с именами команд в качестве ключей, а значения содержатся в списках. Первое значение - это количество забегов, которые набрала команда, второе - разрешенные забеги:
NL = {'Phillies': [662, 476], 'Braves': [610, 550], 'Mets': [656, 687]}
У меня есть функция, которая выполняет итерацию по каждому ключу и обеспечивает общее количество прогонов, которые были оценены и разрешены для словаря в целом. Я также хотел бы иметь возможность вычитать каждую отдельную команду из общей суммы и создавать лигу минус ценность команды.
Я сначала попробовал что-то вроде этого:
def Tlog5(league, league_code):
total_runs_scored = 0
total_runs_allowed = 0
for team, scores in league.iteritems():
total_runs_scored += float(scores[0])
total_runs_allowed += float(scores[1])
team_removed_runs = total_runs_scored - scores[0]
К сожалению, это вычитало только те значения, которые уже были повторены, а не полную сумму. Таким образом, для первой команды в словаре, team_removed_runs был 0, для второй команды это был общий пробег для первых двух команд минус общее количество вторых команд (оставляя только первые команды всего.
Я попытался переместить team_removed_runs = total_runs_scored - scores[0] из цикла for, но тогда я получил значение только для последней команды в словаре.
Есть ли способ вернуть команды team_removed для всех команд в словаре?
Спасибо за любую помощь!
1 ответ
Если вы хотите team_removed_runs
для каждой команды в словаре вам нужно будет вернуться к словарю и вычислить общее количество прогонов минус прогоны для каждой команды. Что-то вроде
team_removed_runs = {}
for team, scores in league.iteritems():
team_removed_runs[team] = [total_runs_scored - scores[0],
total_runs_allowed - scores[1]]
Это будет использовать окончательные значения total_runs_scored
а также total_runs_allowed
для всей лиги, а затем вычесть значения каждой команды из этой суммы, сохраняя результат в словаре team_removed_runs
, Так что, если вы хотите получить значение для общей лиги за вычетом Филлис, вы можете найти это на
team_removed_runs['Phillies']