더북(TheBook)

딕셔너리의 키-값 쌍으로 정렬해야 하므로 dong_population.items()를 사용합니다. 그리고 operatoritemgetter()를 사용해 값을 기준으로 내림차순 정렬합니다. 이 중 앞에서 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에서는 행정동명에 해당하는 위도와 경도를 찾아 위도와 경로 리스트에 각각 저장합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.