본문 바로가기
Python

[python]list dictionary sort multiple (여러 키로 정렬시키기)

by bryan.oh 2019. 2. 14.
반응형

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
반응형

댓글