2011-09-18 6 views
2

Python 2.7에서 작업.For 루프 파이썬에서 반복 된 총에서 사전 값으로 뺄셈

나는 팀 이름을 키로 사용하는 사전을 가지고 있으며 그 값은 목록에 포함되어 있습니다. 첫 번째 값은 팀이 득점 실행의 양, 두 번째는 실행이 허용 :

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이었고 두 번째 팀은 두 팀의 합계를 뺀 나머지 두 팀의 합계를 뺀 것입니다 (첫 번째 팀 만 남음).

for 루프에서 team_removed_runs = total_runs_scored - score [0]을 이동했으나 사전에 마지막 팀의 값만 가져 왔습니다.

모든 팀에 대해 team_removed를 반환 할 수있는 방법이 있습니까? 사전? 어떤 도움

감사합니다!

답변

6

당신이 team_removed_runs F를 원하는 경우 또는 사전에있는 모든 팀에게 사전을 통해 돌아가서 총 실행 수에서 각 팀의 실행 수를 뺀 값을 계산해야합니다.

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_scoredtotal_runs_allowed의 최종 값을 사용하고 사전 team_removed_runs에 결과를 저장, 그 총에서 각 팀 값을 빼는 것입니다. 그래서 만약 당신이 리그 합계의 가치를 Phillies보다 적게 원한다면, 이것을 찾을 수 있습니다.

team_removed_runs['Phillies'] 
+0

나는 여전히 같은 문제가 있습니다. total_runs_scored가 아직 저장되지 않았으므로 첫 번째 팀의 경우 total_runs_scored에서 첫 번째 팀 합계를 빼기 때문에이 함수는 0을 반환합니다.이 시점에는 첫 번째 팀 합계 만 포함됩니다. 그래도 도움을 주셔서 감사합니다. –

+0

작성한 코드 다음에 작성한 코드를 추가하면 2 개의 for 루프가 생깁니다. [전체 코드의 pastebin] (http://pastebin.com/m3byYxe0)을 참조하십시오. – brc

+0

아, 알 겠어! 감사! –