2016-06-20 1 views
-1

원래 문자열 인 키 값을 기반으로 사전을 정렬하는 데 문제가 있습니다. 나는 SortedDict을 사용하는 솔루션을 찾고있다. 아래 나는 문자열을 int으로 캐스팅했으나 정렬은 비합리적으로 보입니다. 그렇지 않으면 당신은 키의 첫 번째 숫자에 따라 DICT을 정렬하고 있기 때문에 당신이 int(k)int(k[0])를 교체 할 경우SortedDictionary 정렬 OrderedDict에서 다른 키가 필요합니다

#using Jenks' library: 
from sortedcontainers.sorteddict import SortedDict 

mydict = SortedDict(
     lambda k: int(k[0]), 
     { 
     '1': '#fe70ac', 
     '10': '#ff7400', 
     '11': '#b6a2d1', 
     '12': '#79bc3b', 
     '100': '#000000', 
     '101': '#000000', 
     '102': '#000000' 
     }) 

반환

SortedDict_items(
[('11', '#b6a2d1'), 
('10', '#ff7400'), 
('12', '#79bc3b'), 
('1', '#fe70ac'), 
('102', '#000000'), 
('100', '#000000'), 
('101', '#000000').... 
+1

dict를 나중에 반복하면서 정렬 할 수 있습니까? – Bahrom

답변

2

그것은 작동합니다.

+1

Brilliant. 이 키는 'OrderedDict (sorted (d.items(), key = lambda t : t [0]))'및'KEY = 0','VALUE = 1'과 같은'OrderedDict'와는 같지 않습니다. – noumenal

관련 문제