파이썬에서 딕셔너리를 키로 정렬하는 방법
개요
파이썬에서 딕셔너리를 키로 정렬하는 작업은 매우 일반적인 작업 중 하나입니다. 이러한 작업은 다양한 프로그래밍 상황에서 필요하며, 파이썬은 이를 위한 몇 가지 내장된 방법을 제공합니다.
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
함수로 정렬 기준을 지정하는 방법 등이 있습니다. 상황과 필요에 따라 적절한 방법을 선택할 수 있습니다.