안녕세계
[Python] list에서 dictionary 정렬 본문
[Python] list에서 dictionary 정렬
Junhong Kim 2019. 1. 13. 12:41728x90
반응형
list에서 dictionary를 정렬하는 방법에 대해 알아봅니다.
people = [
{'name': 'kim', 'age': 10},
{'name': 'lee', 'age': 20},
{'name': 'park', 'age': 30},
{'name': 'choi', 'age': 40},
{'name': 'kim', 'age': 50},
]
[방법1] sorted()+ lambda
- sorted()와 lambda를 사용하여 name
으로 오름차순 정렬 후 age
로 오름차순 정렬하는 방법입니다.
data = sorted(people, key=lambda person: (person['name'], person['age']))
for d in data:
print(d)
# {'name': 'choi', 'age': 40}
# {'name': 'kim', 'age': 10}
# {'name': 'kim', 'age': 50}
# {'name': 'lee', 'age': 20}
# {'name': 'park', 'age': 30}
[방법2] sorted() + itemgetter (추천)
- sorted()와 itemgetter를 사용하여 name
으로 오름차순 정렬 후 age
로 오름차순 정렬하는 방법입니다.
from operator import itemgetter
data = sorted(people, key=itemgetter('name', 'age'))
for d in data:
print(d)
# {'name': 'choi', 'age': 40}
# {'name': 'kim', 'age': 10}
# {'name': 'kim', 'age': 50}
# {'name': 'lee', 'age': 20}
# {'name': 'park', 'age': 30}
References
https://stackoverflow.com/questions/16082954/python-how-to-sort-a-list-of-dictionaries-by-several-values
728x90
반응형
'Language > Python' 카테고리의 다른 글
[Python] 단순복사 vs 얕은복사 vs 깊은복사 (0) | 2019.01.15 |
---|---|
[Python] list에서 element 개수 세기 (0) | 2019.01.14 |
[Python] list.sort()와 sorted(list) 차이 (1) | 2019.01.12 |
[Python] stream 및 file에 로그 남기기 (logging) (1) | 2019.01.12 |
[Python] 랜덤 문자열 생성 (0) | 2019.01.11 |
Comments