포스트

파이썬에서 딕셔너리를 키로 정렬하는 방법

개요

파이썬에서 딕셔너리를 키로 정렬하는 작업은 매우 일반적인 작업 중 하나입니다. 이러한 작업은 다양한 프로그래밍 상황에서 필요하며, 파이썬은 이를 위한 몇 가지 내장된 방법을 제공합니다.

sorted 함수를 사용한 방법

가장 간단한 방법은 sorted 함수를 사용하는 것입니다. 이 함수는 정렬된 키 리스트를 반환하며, 이를 바탕으로 새로운 딕셔너리를 생성할 수 있습니다.

1
2
original_dict = {'banana': 3, 'apple': 4, 'pear': 1, 'orange': 2}
sorted_dict = {k: original_dict[k] for k in sorted(original_dict)}

여기서 sorted 함수는 키를 오름차순으로 정렬합니다. k: original_dict[k] 형태의 딕셔너리 컴프리헨션 (dictionary comprehension)을 사용하여 새로운 딕셔너리를 생성합니다.

OrderedDict를 사용한 방법

파이썬 3.7 이상에서는 모든 딕셔너리가 순서를 유지합니다. 그러나 이전 버전에서는 collections.OrderedDict를 사용하여 순서를 유지할 수 있습니다.

1
2
3
4
from collections import OrderedDict

original_dict = {'banana': 3, 'apple': 4, 'pear': 1, 'orange': 2}
sorted_dict = OrderedDict(sorted(original_dict.items()))

OrderedDict는 키-값 쌍을 입력한 순서대로 저장합니다. sorted(original_dict.items())로 키-값 쌍을 정렬한 뒤, 이를 OrderedDict에 전달하여 순서가 유지되는 딕셔너리를 생성합니다.

lambda 함수를 사용한 방법

때로는 키가 아닌 값을 기준으로 딕셔너리를 정렬하고 싶을 수 있습니다. 이럴 경우 lambda 함수를 사용할 수 있습니다.

1
2
original_dict = {'banana': 3, 'apple': 4, 'pear': 1, 'orange': 2}
sorted_dict = {k: v for k, v in sorted(original_dict.items(), key=lambda item: item[1])}

여기서 key=lambda item: item[1]는 정렬 기준을 딕셔너리의 값으로 설정합니다.

정리

딕셔너리를 키로 정렬하는 방법은 다양합니다. sorted 함수를 사용하거나, OrderedDict를 이용하거나, lambda 함수로 정렬 기준을 지정하는 방법 등이 있습니다. 상황과 필요에 따라 적절한 방법을 선택할 수 있습니다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.