Python sort by value in dictionary list
2021. 6. 8. 23:03ㆍ프로그래밍 개발(Development)/Python
반응형
사전형 리스트 데이터에서 value 값으로 정렬을 하는 방법을 알아보자
아래와 같이 month와 day가 key인 사전형 리스트가 있다
datelist = [
{ "month": 8, "day": 22 },
{ "month": 8, "day": 30 },
{ "month": 5, "day": 9 },
{ "month": 9, "day": 15 },
{ "month": 9, "day": 29 },
{ "month": 12, "day": 3 }
]
1. lambda를 이용한 정렬
- reverse 옵션을 추가할 경우 역정렬
- 'month' 정렬 후 'day' 정렬 시도
# 오름차순
result = sorted(datelist, key=lambda date: (date['month'], date['day']))
# 결과
{'day': 9, 'month': 5}
{'day': 22, 'month': 8}
{'day': 30, 'month': 8}
{'day': 15, 'month': 9}
{'day': 29, 'month': 9}
{'day': 3, 'month': 12}
# 내림차수
result = sorted(datelist, key=lambda date: (date['month'], date['day']), reverse=True)
#결과
{'day': 3, 'month': 12}
{'day': 29, 'month': 9}
{'day': 15, 'month': 9}
{'day': 30, 'month': 8}
{'day': 22, 'month': 8}
{'day': 9, 'month': 5}
2. itemgetter를 이용한 정렬(추천)
from opertor import itemgetter
# 오름차순
result = sorted(datelist, key=itemgetter('month', 'day'))
# 결과
{'day': 9, 'month': 5}
{'day': 22, 'month': 8}
{'day': 30, 'month': 8}
{'day': 15, 'month': 9}
{'day': 29, 'month': 9}
{'day': 3, 'month': 12}
# 내림차순
result = sorted(datelist, key=itemgetter('month', 'day'), reverse=True)
# 결과
{'day': 3, 'month': 12}
{'day': 29, 'month': 9}
{'day': 15, 'month': 9}
{'day': 30, 'month': 8}
{'day': 22, 'month': 8}
{'day': 9, 'month': 5}
반응형
'프로그래밍 개발(Development) > Python' 카테고리의 다른 글
Python MultiProcessing Pool사용법 (2) | 2021.08.24 |
---|---|
입력 순서를 기억하는 Dictionary[OrderedDict] (0) | 2021.08.19 |
Python IP 정보 확인 하는 방법 (0) | 2020.12.01 |
Python List 값 중복 제거(Remove duplicate python list) (0) | 2020.10.19 |