본문으로 건너뛰기

Python 딕셔너리 정렬

딕셔너리는 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)]