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() 함수를 사용해야 합니다. 함수는 정렬을 위한 키로 사용되는 인수로 함수를 사용합니다. 키를 기준으로 사전을 정렬하려고 하므로 튜플의 0번째 요소를 정렬의 키로 사용합니다.

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

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

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