Python
[python]list dictionary sort multiple (여러 키로 정렬시키기)
bryan.oh
2019. 2. 14. 15:32
반응형
List Dictionary sort multiple
딕셔너리 리스트를 여러개의 key 로 정렬 시키기
sorted 와 lambda 식을 사용하여 멀티 정렬이 가능합니다.
아래의 lambda 식에서
e:( -e['point'], e['penalty'])
를 보면, 내림차순은 - 를 붙혀주면 됩니다.
아래 예제는 point 가 높은 순, point가 같다면 penalty 가 낮은 순으로 정렬하는 예제입니다.
dicList = [
{'point':90, 'penalty', 60, 'name' : 'kitti' },
{'point':87, 'penalty', 58, 'name' : 'kate' },
{'point':92, 'penalty', 74, 'name' : 'kevin' },
{'point':90, 'penalty', 54, 'name' : 'tison' },
{'point':85, 'penalty', 75, 'name' : 'json' },
]
# point 높은순, penalty 낮은순
sorted_arr = sorted(dicList, key=lambda e: (-e['point'], e['penalty']))
>>> sorted_arr
>>> {'point':92, 'penalty', 74, 'name' : 'kevin' },
{'point':90, 'penalty', 54, 'name' : 'tison' },
{'point':90, 'penalty', 60, 'name' : 'kitti' },
{'point':87, 'penalty', 58, 'name' : 'kate' },
{'point':85, 'penalty', 75, 'name' : 'json' },
728x90
반응형