2013-09-21 6 views
1

목록과 문자열의 파이썬 사전 조합이 있습니다.데이터 유형별로 파이썬 사전 정렬

dic = {"a": "11","c": [1,3,4], "b": [1,2,3], "g": "a"} 

예컨대 나는 데이터 형식하여 정렬 할 수 있습니다. 당신은 단지 사전에서 정렬 된 목록을 얻을 수 있도록

같은
dic = {"a": "11", "g": "a", "c": [1,3,4], "b": [1,2,3]} 
+1

사전에 주문이 없습니다! – TerryA

답변

5

Dicts는 본질적으로 orderless 있습니다. 당신이 값의 유형으로 분류 키/값 쌍의 목록을 얻을하고자하는 경우, 당신은 이런 식으로 작업을 수행 할 수 있습니다

sorted(dic.items(), key=lambda pair: type(pair[1]), reverse=True) 

이 당신에게 다음과 같은 목록을 줄 것이다, 문자열 항목이 이전에 오는 목록 항목 :

[('a', '11'), ('g', 'a'), ('c', [1, 3, 4]), ('b', [1, 2, 3])] 
+0

Works를 원한다면'collections.OrderedDict'를 사용하십시오. 고마워. – Naveed

+3

@ Nav : 답변이 도움이된다면 [답변] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)하십시오. – georg