Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python에서 딕셔너리 키와 값 목록을 정렬하는 방법

Python에서 딕셔너리(dictionary)의 키(key)와 값(value) 목록을 정렬해야 할 때는 내장 함수인 sorted를 활용하면 간단하게 해결할 수 있습니다.

아래 예제를 통해 구체적인 사용 방법을 살펴보겠습니다.

예제 코드

my_dict = {'Hi': [1, 6, 3],
    'there': [2, 9, 6],
    'Mark': [16, 7]}

print("The dictionary is : ")
print(my_dict)

my_result = dict()
for key in sorted(my_dict):
    my_result[key] = sorted(my_dict[key])

print("The sorted dictionary is : ")
print(my_result)

실행 결과

The dictionary is :
{'Hi': [1, 6, 3], 'there': [2, 9, 6], 'Mark': [16, 7]}
The sorted dictionary is :
{'Hi': [1, 3, 6], 'Mark': [7, 16], 'there': [2, 6, 9]}

코드 설명

  • 정렬 대상이 되는 딕셔너리를 하나 정의하고, 콘솔에 출력합니다.

  • 정렬된 결과를 담기 위한 빈 딕셔너리를 생성합니다.

  • sorted(my_dict)를 호출해 딕셔너리의 키들을 먼저 정렬한 뒤 순회(iteration)합니다.

  • 각 키에 연결된 값 목록 역시 sorted()로 정렬하여 새로운 딕셔너리에 할당합니다.

  • 키와 값이 모두 정렬된 최종 딕셔너리를 콘솔에 출력합니다.

딕셔너리 컴프리헨션으로 더 간결하게

위 코드는 딕셔너리 컴프리헨션(dict comprehension)을 사용하면 한 줄로 더욱 간결하게 작성할 수 있습니다.

my_result = {key: sorted(values) for key, values in my_dict.items()}

파이썬 3.7부터는 딕셔너리가 삽입 순서를 유지하므로, 이 방식으로도 키가 정렬된 순서 그대로 결과가 저장됩니다. 반복문보다 가독성이 뛰어나므로 실무에서는 컴프리헨션 방식을 권장합니다.