Python빈칸 채우기보통 · 20점#딕셔너리#컴프리헨션#정렬#함수

68. 딕셔너리 컴프리헨션과 동점 정렬 기준

다음은 두 과목 점수의 평균으로 순위를 매기는 Python 프로그램이다. 평균이 높은 순으로, 평균이 같으면 이름의 가나다순으로 순위가 출력되도록 빈칸 ①에 들어갈 메서드 이름과 빈칸 ②에 들어갈 식을 쓰시오. 실행 결과는 "{'하린': 85, '민수': 85, '도윤': 79, '지아': 85}", "1 민수 85", "2 지아 85", "3 하린 85", "4 도윤 79", "['도윤', '하린', '민수', '지아']" 여섯 줄이다.

1scores = {
2 "하린": [85, 85],
3 "민수": [80, 90],
4 "도윤": [70, 88],
5 "지아": [95, 75],
6 "서준": [60, 70],
7}
8avg = {name: sum(s) // len(s) for name, s in scores.( ① )() if min(s) >= 70}
9print(avg)
10
11
12def order(pair):
13 name, score = pair
14 return (( ② ), name)
15
16
17ranking = sorted(zip(avg.keys(), avg.values()), key=order)
18for rank, (name, score) in enumerate(ranking, 1):
19 print(rank, name, score)
20low = sorted(avg, key=avg.get)
21print(low)

해설을 먼저 보면 이후 정답 시 점수가 50%만 반영됩니다.