2014-09-01 2 views
0

나는 사전을 가지고 있으며 값으로 사전을 정렬했습니다. 다음은 샘플 데이터와 코드입니다 : 내가 sorted_dict를 인쇄 할 때동일한 순서를 유지하면서 튜플을 사전으로 변환하는 방법

sorted_dict = sorted(mydict.iteritems(), key = operator.itemgetter(1), reverse = True) 

, 나는이 얻을 : 나는 그러므로 내림차순으로 값을 기준으로이 문제를 정렬하려면 지금

mydict = {'b':4, 'a':1, 'd':8, 'c':10} 

, 나는 다음과 같은 코드를 사용 튜플 목록 :

sorted_dict 
[('c', 10), ('d', 8), ('b', 4), ('a', 1)] 

그러나이 형식을 사전 형식으로 원합니다. 그래서 나는 다음과 같은 코드를 사용 :

dict(sorted_dict) 

을하고 다음 결과를 얻었다 :

{'a': 1, 'c': 10, 'b': 4, 'd': 8} 

그래서, 그것은 DICT() 메소드가 자동으로 키에 의해 사전 정렬처럼 보이는합니다. 그러나 원하는 출력은 다음과 같습니다.

{'c':10, 'd':8, 'b':4, 'a':1} 

이 출력을 얻는 방법은 무엇입니까?

누군가 도와 드릴 수 있습니까?

답변

3

주문한 모음이 아닌 일반 dict으로 시작할 수 없습니다. 그러나 collections.OrderedDict!

>>> from collections import OrderedDict 
>>> d = OrderedDict([('c', 10), ('d', 8), ('b', 4), ('a', 1)]) 
>>> d 
OrderedDict([('c', 10), ('d', 8), ('b', 4), ('a', 1)]) 

허용되는 출력은별로 의미가 없지만 정확합니다. 키를 사용하여 항목에 액세스하고 순서대로 쌍을 통해 반복 할 수 있습니다.

관련 문제