딕셔너리는 key-value 형태로 데이터를 저장하는 자료형입니다. 딕셔너리를 어떤 순서로 정렬할 때 key를 기준으로 정렬하거나, value를 기준으로 정렬할 수 있습니다.
1. 딕셔너리 오름차순/내림차순 정렬 (key 정렬)
1.1 오름차순
아래와 같이 sorted()
함수를 이용하여 딕셔너리를 정렬할 수 있습니다. 기본적으로 key를 기준으로 정렬하며, 오름차순으로 정렬됩니다.
my_dict = {'c': 3, 'a': 1, 'b': 2, 'e': 1, 'd': 2}
sorted_dict = sorted(my_dict.items())
print(sorted_dict)
Output:
[('a', 1), ('b', 2), ('c', 3), ('d', 2), ('e', 1)]
1.2 내림차순
내림차순으로 정렬하려면 sorted()
함수에 인자로 reverse = True
를 전달해야 합니다. 역순으로 정렬한다는 의미인데, 기본적으로 오름차순으로 정렬되기 때문에 역순은 내림차순이 됩니다.
my_dict = {'c': 3, 'a': 1, 'b': 2, 'e': 1, 'd': 2}
sorted_dict = sorted(my_dict.items(), reverse=True)
print(sorted_dict)
Output:
[('e', 1), ('d', 2), ('c', 3), ('b', 2), ('a', 1)]
2. 딕셔너리 오름차순/내림차순 정렬 (value 정렬)
딕셔너리를 정렬할 때, key 대신에 value를 기준으로 정렬하고 싶을 때 sorted()
에 어떤 것으로 정렬할 것인지 알려줘야 합니다.
아래 예제에서 key 인자가 어떤 것으로 정렬할 것인지를 의미합니다. 따라서 key=lambda item: item[1]
와 같이 인자를 전달하면 value를 기준으로 정렬합니다.
(item[1]
는 value를 의미하고 item[0]
는 key를 의미)
my_dict = {'c': 3, 'a': 1, 'b': 2, 'e': 1, 'd': 2}
sorted_dict = sorted(my_dict.items(), key=lambda item: item[1])
print(sorted_dict)
Output:
[('a', 1), ('e', 1), ('b', 2), ('d', 2), ('c', 3)]
만약 내림차순으로 정렬하고 싶으면 위의 코드에서 reverse=True
를 인자로 전달하면 됩니다.
my_dict = {'c': 3, 'a': 1, 'b': 2, 'e': 1, 'd': 2}
sorted_dict = sorted(my_dict.items(), key=lambda item: item[1], reverse=True)
print(sorted_dict)
Output:
[('c', 3), ('b', 2), ('d', 2), ('a', 1), ('e', 1)]