본문 바로가기
Python

Python - 딕셔너리(dict) 리스트 정렬 하기(sort)

by 올엠 2024. 3. 6.
반응형

Python 에서는 sort를 이용하여 리스트를 정렬하는 기능을 제공하고 있다.

간편하게 sort라는 내장 함수를 이용하면, 손쉽게 정렬이 가능한데, 일반적인 List 리스트는 이렇게 진행할 수 있다.

>>> int_list = [3,5,6,9,2]
>>> int_list
[3, 5, 6, 9, 2]
>>> int_list.sort()
>>> int_list
[2, 3, 5, 6, 9]
>>> int_list.reverse()
>>> int_list
[9, 6, 5, 3, 2]

 한글 역시 가능하며, reversed 내장 함수를 이용하면 추가적인 조작도 가능해진다.

 

그런데 Key와 Value가 있는 경우에는 리스트 내장함수로는 어렵고 sorted 라는 별도의 내장함수를 이용하여 Lamda로 처리하여야 한다.

>>> dict_list = [{'a':2}, {'a':3}, {'a':4}, {'a':1}]
>>> sorted(dict_list, key=lambda dict_item: (dict_item['a']))
[{'a': 1}, {'a': 2}, {'a': 3}, {'a': 4}]

 

 

아래와 같이 다중 키를 통해서 정렬 기준을 여러개 주어, 본인 상황에 맞는 최적의 리스트를 구성할 수 있다.

>>> dict_list = [{'a':2, 'b':4}, {'a':3, 'b':5}, {'a':4, 'b':6}, {'a':1, 'b':1}]
>>> sorted(dict_list, key=lambda dict_item: (dict_item['a'], dict_item['b']))
[{'a': 1, 'b': 1}, {'a': 2, 'b': 4}, {'a': 3, 'b': 5}, {'a': 4, 'b': 6}]

 

 

정렬하는 키는 모든 값에 키 값이 존재해야 한다.

 

 

반응형