딕셔너리의 키-값 쌍으로 정렬해야 하므로 dong_population.items()를 사용합니다. 그리고 operator의 itemgetter()를 사용해 값을 기준으로 내림차순 정렬합니다. 이 중 앞에서 10개 항목을 선택해야 하므로 [:10]을 추가해 슬라이싱합니다. 이 상태로 변수 top10에 저장된 값을 출력하면(print(top10)) 딕셔너리의 키-값이 괄호로 묶여 리스트 형태로 출력됩니다(주석을 지우고 출력해 보세요). 필요한 것은 행정동코드이므로 첫 번째 항목(키에 해당하는 행정동코드)만 뽑아서 다시 top10_code8 리스트에 차례대로 저장합니다. top10에 저장된 순서대로 top10_code8에 저장되므로 top10_code8에도 인구가 많은 행정동코드부터 차례대로 추가됩니다.
TIP 이해되지 않으면 7.1.4 다양한 명령어 사용하기의 딕셔너리 정렬하기: sorted()를 참고하세요.
그런데 행정동코드를 top10_code8에 저장하는 과정에서 반복문을 사용하네요. 11장에서 배운 리스트 내포를 사용하면 코드를 한 줄로 바꿀 수 있습니다. 리스트 내포를 사용해 코드를 다음과 같이 수정합니다.
top10 = sorted(dong_population.items(), key=operator.itemgetter(1), reverse=True)[:10]
top10_code8 = [t[0] for t in top10]
다음 과정으로 넘어갑시다. 과정 4에서는 top10_code8 리스트에 저장한 행정동코드에 해당하는 행정동명을 행정동코드 데이터에서 찾아 행정동명 리스트에 저장합니다. 그리고 과정 5에서는 행정동명에 해당하는 위도와 경도를 찾아 위도와 경로 리스트에 각각 저장합니다.