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