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

값으로 Python 사전을 정렬하는 방법은 무엇입니까?

<시간/>

Python의 표준 배포에는 컬렉션 모듈이 포함되어 있습니다. 고성능 컨테이너 데이터 유형에 대한 정의가 있습니다. OrderedDict는 사전 객체에 추가된 항목의 순서를 기억하는 사전의 하위 클래스입니다. 순서가 지정된 사전을 반복할 때 항목은 키가 처음 추가된 순서대로 반환됩니다.

>>> from collections import OrderedDict
>>> D = {5:'fff', 3:'ttt', 1:'ooo',4:'bbb', 2:'ddd'}
>>> OrderedDict(D.items())
OrderedDict([(5, 'fff'), (3, 'ttt'), (1, 'ooo'), (4, 'bbb'), (2, 'ddd')])

또한 iterable의 요소를 지정된 순서로 정렬하는 sorted() 함수를 사용해야 합니다. 함수는 정렬을 위한 키로 사용되는 인수로 함수를 사용합니다. 값을 기준으로 사전을 정렬하려고 하므로 튜플의 첫 번째 요소를 정렬의 키로 사용합니다.

>>> OrderedDict(sorted(D.items(), key = lambda t: t[1]))
OrderedDict([(4, 'bbb'), (2, 'ddd'), (5, 'fff'), (1, 'ooo'), (3, 'ttt')])

OrderedDict 개체는 일반 사전 개체로 구문 분석될 수 있습니다.

>>> D1 = dict(OrderedDict(sorted(D.items(), key = lambda t: t[1])))
>>> D1
{4: 'bbb', 2: 'ddd', 5: 'fff', 1: 'ooo', 3: 'ttt'}