Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 사전 값으로 사전 목록을 어떻게 정렬합니까?


Python에는 iterable의 요소를 주어진 순서로 정렬하는 내장 함수 sorted()가 있습니다.

sorted(iterable[, key][, reverse]

두 번째 매개 변수는 반환 값을 정렬의 키로 사용하는 함수입니다. 세 번째 매개변수는 기본적으로 false이며 true이면 정렬된 목록이 내림차순으로 나타납니다.

사전 키의 값을 정렬된 함수의 키로 정의하는 람다 함수를 사용합니다. 다음 예는 키와 관련된 값의 오름차순에 따라 사전 목록을 정렬합니다.

>>> dictlist=[{'name':'Rahul', 'age':23, 'marks':60}, {'name':'Anil', 'age':18, 'marks':55}, {'name':'Sunil', 'age':21, 'marks':90}]
>>> newlist=sorted(dictlist, key = lambda k:k['name'])
>>> newlist
[{'name': 'Anil', 'age': 18, 'marks': 55}, {'name': 'Rahul', 'age': 23, 'marks': 60}, {'name': 'Sunil', 'age': 21, 'marks': 90}]
>>> newlist=sorted(dictlist, key = lambda k:k['age'])
>>> newlist
[{'name': 'Anil', 'age': 18, 'marks': 55}, {'name': 'Sunil', 'age': 21, 'marks': 90}, {'name': 'Rahul', 'age': 23, 'marks': 60}]
>>> newlist=sorted(dictlist, key = lambda k:k['marks'], reverse=True)
>>> newlist
[{'name': 'Sunil', 'age': 21, 'marks': 90}, {'name': 'Rahul', 'age': 23, 'marks': 60}, {'name': 'Anil', 'age': 18, 'marks': 55}]