2014-03-27 5 views
1

내가 여기에 문제가있는 값. 현재이 프로그램은 가장 높은 점수를 가진 사람을 인쇄합니다. 그러나 일부 이름의 점수가 같으면 프로그램을 모두 인쇄해야합니다. 나는 루프를 사용해야한다고 생각하지만 작동하도록 할 수는 없습니다.파이썬 인쇄 여러 (같은)

+0

당신은 최고 선수 (그리고 1 위의 선수) 만 요구할 수 있지만 그것을 "정렬 된 점수"라고 부르면 모든 선수가 정렬 되겠습니까? –

+0

이것은 일반적인 들여 쓰기 연습을 사용해야합니다 (":"뒤에 줄 바꿈 + 들여 쓰기) – Jasper

답변

3

오브젝트 scores을 반복하여 최대 값을 알고있는 경우 for 루프의 끝에서 얻을 수 있습니다.

+0

이것은 완벽하게 고마워했습니다. – user2333133

+0

이것은 기본적으로 데이비드 로빈슨의 대답이지만, 확실히 덜 파이썬 적입니다. @OP : Python 2.x 또는 3.x를 사용하고 있습니까? – Jasper

+0

@ Jasper David Robinsons처럼 보입니다. 나는 똑같은 생각을했습니다. 그러나 보시다시피, 그들은 물론 당신에게 같은 결과를주지 않을 것입니다. -감사 –

0

max()은 하나의 값만 반환합니다.

: 당신은 최대 값을 찾을 수
sortedScoresByMax = sorted(scores.items(), reverse=True, key=lambda t: t[1]) 
1

은, 그 점수로 모든 플레이어를 인쇄 : 당신은, 그러나,이 같은 내림차순으로 점수와 이름 목록을 얻기 위해 reverse=True 옵션 sorted()을 사용할 수 있습니다

maxscore=0 
maxscorers = [] 
for name, score in scores.items(): 
    if score > maxscore: 
    maxscore = score 
    maxscorers = [name] 
    elif score = maxscore: 
    maxscorers.append(name) 

내가이 매우 파이썬의 경우 잘 모르겠지만, 내가 먼저 determini 때보 다 더 좋아 다음 DICT를 통해 하나의 패스로

maxscore = max(scores.values()) 
print [(p, s) for p, s in scores.items() if s == maxscore] 
1

최대 값을 선택한 다음 목록을 필터링하십시오.