Python의 목록에 해당하는 사전 키 값 반복
Python 2.7에서 작업.팀 이름을 키로 하고 각 팀이 채점하고 허용되는 득점 수를 값 목록으로 하는 사전이 있습니다.
NL_East = {'Phillies': [645, 469], 'Braves': [599, 548], 'Mets': [653, 672]}
사전을 함수에 넣어 각 팀(키)에 반복할 수 있도록 하고 싶다.
이게 내가 사용하는 코드야.지금은 팀별로만 갈 수 있어요.각 팀에 대해 어떻게 반복하고 각 팀의 예상 win_percentage를 출력합니까?
def Pythag(league):
runs_scored = float(league['Phillies'][0])
runs_allowed = float(league['Phillies'][1])
win_percentage = round((runs_scored**2)/((runs_scored**2)+(runs_allowed**2))*1000)
print win_percentage
도와주셔서 감사합니다.
사전을 통해 반복하기 위한 몇 가지 옵션이 있습니다.
사전 자체에 대해 반복하는 경우(for team in league
사전의 키를 사용하여 반복합니다.for 루프를 사용하여 루프할 경우 dict 위에 루프하든 동작은 동일합니다( ).league
) 자체 또는:
for team in league.keys():
runs_scored, runs_allowed = map(float, league[team])
키와 값을 동시에 반복할 수도 있습니다.league.items()
:
for team, runs in league.items():
runs_scored, runs_allowed = map(float, runs)
다음 작업을 반복하면서 태플 포장을 해제할 수도 있습니다.
for team, (runs_scored, runs_allowed) in league.items():
runs_scored = float(runs_scored)
runs_allowed = float(runs_allowed)
사전에서도 쉽게 반복할 수 있습니다.
for team, scores in NL_East.iteritems():
runs_scored = float(scores[0])
runs_allowed = float(scores[1])
win_percentage = round((runs_scored**2)/((runs_scored**2)+(runs_allowed**2))*1000)
print '%s: %.1f%%' % (team, win_percentage)
사전에는 다음과 같은 기능이 내장되어 있습니다.iterkeys()
.
시험:
for team in league.iterkeys():
runs_scored = float(league[team][0])
runs_allowed = float(league[team][1])
win_percentage = round((runs_scored**2)/((runs_scored**2)+(runs_allowed**2))*1000)
print win_percentage
사전 개체를 사용하면 항목을 반복할 수 있습니다.또한 패턴 매칭과 분할을 통해__future__
조금 더 간단하게 할 수 있습니다.
마지막으로 인쇄와 논리를 분리하여 나중에 리팩터/디버깅을 좀 더 쉽게 할 수 있습니다.
from __future__ import division
def Pythag(league):
def win_percentages():
for team, (runs_scored, runs_allowed) in league.iteritems():
win_percentage = round((runs_scored**2) / ((runs_scored**2)+(runs_allowed**2))*1000)
yield win_percentage
for win_percentage in win_percentages():
print win_percentage
목록 이해는 일을 줄일 수 있다...
win_percentages = [m**2.0 / (m**2.0 + n**2.0) * 100 for m, n in [a[i] for i in NL_East]]
언급URL : https://stackoverflow.com/questions/7409078/iterating-over-dictionary-key-values-corresponding-to-list-in-python
'programing' 카테고리의 다른 글
strings.xml 파라미터가 가능한가요? (0) | 2023.04.15 |
---|---|
목표 C에 #import와 #include의 차이점은 무엇입니까? (0) | 2023.04.15 |
명령줄에서 VBScript를 사용하여 Outside Excel에서 Excel 매크로 실행 (0) | 2023.04.15 |
테이블에서 필터 지우기 (0) | 2023.04.15 |
Swift에서 Arg 수가 가변인 함수에 배열 전달 (0) | 2023.04.15 |