Language/Python
[Python] list에서 dictionary 정렬
Junhong Kim
2019. 1. 13. 12:41
728x90
반응형
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
반응형