반응형
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}]
단 정렬하는 키는 모든 값에 키 값이 존재해야 한다.
반응형