728x90
반응형
list에 담긴 json 형태의 dictionary 들을 특정 value에 따라 정렬을 해야할 때가 있습니다.
python 내장함수인 operator를 활용하면 아주 용이하게 할 수 있습니다.
import operator
list_of_dict = [
{'id': 1, 'name': 'Kim', 'age':10},
{'id': 2, 'name': 'Ju', 'age':30},
{'id': 3, 'name': 'Jang', 'age':20},
]
list_of_dict.sort(key=operator.itemgetter('name'))
print(list_of_dict)
list_of_dict.sort(key=operator.itemgetter('age'))
print(list_of_dict)
list_of_dict.sort(key=operator.itemgetter('id'), reverse=True)
print(list_of_dict)
[{'id': 3, 'name': 'Jang', 'age': 20}, {'id': 2, 'name': 'Ju', 'age': 30}, {'id': 1, 'name': 'Kim', 'age': 10}]
[{'id': 1, 'name': 'Kim', 'age': 10}, {'id': 3, 'name': 'Jang', 'age': 20}, {'id': 2, 'name': 'Ju', 'age': 30}]
[{'id': 3, 'name': 'Jang', 'age': 20}, {'id': 2, 'name': 'Ju', 'age': 30}, {'id': 1, 'name': 'Kim', 'age': 10}]
* 주의
sort()의 경우 return 값이 별도로 없고 sort()한 list가 직접 정렬이 적용됩니다.
import operator
list_of_dict = [
{'id': 1, 'name': 'Kim', 'age':10},
{'id': 2, 'name': 'Ju', 'age':30},
{'id': 3, 'name': 'Jang', 'age':20},
]
new_list = list_of_dict.sort(key=operator.itemgetter('name'))
print(new_list)
print(list_of_dict)
None
[{'id': 3, 'name': 'Jang', 'age': 20}, {'id': 2, 'name': 'Ju', 'age': 30}, {'id': 1, 'name': 'Kim', 'age': 10}]
위와 같이 변수를 sort() 한 후 변수로 값을 주려고 하면 None이 됩니다.
728x90
반응형
'Python' 카테고리의 다른 글
zip # python 여러 list, set 등을 묶어서 for loop 돌기 (0) | 2023.01.08 |
---|---|
중복을 없애며 list 합치기 # set에 list 합치기 (0) | 2022.12.31 |
(python) remove list elements in for loop # for 문에서 list의 요소 제거 (0) | 2022.12.17 |
python file, directory 경로 / file , directory 여부 확인 (0) | 2022.12.15 |
list index: list에서 특정 값의 순서 찾기 (0) | 2022.12.14 |