2010-06-14 8 views
3

사전의 키 이름을 변경하려면 int가 필요하며 올바르게 정렬하려면 앞에 오는 0이있는 정수가 필요합니다.사전의 키 이름 바꾸기

'1','101','11' 

와 나는 그들이해야 :

예를 들어 내 키 등이있다

'001','101','011' 

이 메신저가 무엇을하고,하지만 난 더 나은 방법

가 알고
tmpDict = {} 
    for oldKey in aDict: 
tmpDict['%04d'%int(oldKey)] = aDict[oldKey] 
newDict = tmpDict 
+0

혼란스러워. 숫자 정렬이 키를 정렬하는 이유는 무엇입니까? 사전은 키 정렬 순서를 보장하지 않으므로 키를 변경합니다. – Alan

+1

숫자로 변환하지 않으시겠습니까? (필요할 경우 바이너리로 표시 할 수도 있습니다) – Mark

답변

7

당신은 그것에 대해 잘못된 길을 것입니다. dict에서 항목을 정렬 된 방식으로 가져 오려면 추출시 정렬해야합니다.

for k in sorted(D, key=int): 
    print '%s: %r' % (k, D[k]) 
0
aDict = dict((('%04d' % oldKey, oldValue) \ 
      for (oldKey, oldValue) in aDict.iteritems())) 

... 또는 %03d i f 당신은 당신의 예제에서와 같이 3 자리 숫자가 필요합니다.

1

원하는 키를 사용하여 정렬 할 수 있습니다.

따라서, 예를 들어 : sorted(mydict, key=int)