Python) 딕셔너리 in 리스트 정렬하기

5928 단어 TILTIL
arr = [{'number': 1, 'weight': 50, 'rate': 0.33, 'hwin': 1},
{'number': 2, 'weight': 82, 'rate': 0.33, 'win': 0}, 
{'number': 3, 'weight': 75, 'rate': 0.66, 'win': 2}, 
{'number': 4, 'weight': 120, 'rate': 0.66, 'win': 0}]

이렇게 리스트 안에 딕셔너리 형태로 있을 때 조건부 정렬을 하려면

ex) rate 기준으로 내림차순 :

arr = sorted(arr, key=(lambda x: x['rate']), reverse=True)

reverse=True 는 내림차순이다 쓰지 않으면 오름차순으로 된다.

만약 여러 조건을 걸어야 할때는
우선순위가 낮은순으로 정렬하면 된다.

ex) 우선순위가 rate, win, weight 일때 :

arr = sorted(arr, key=(lambda x: x['weight']), reverse=True)
arr = sorted(arr, key=(lambda x: x['win']), reverse=True)
arr = sorted(arr, key=(lambda x: x['rate']), reverse=True)

좋은 웹페이지 즐겨찾기