2013-11-22 1 views
1

파이썬에서 사전을 만드는 중입니다. 키가 '0'에서 '9'까지의 문자이고 이후에 'a'에서 ' 'Z', 자신의 ID를 0에서이 같은 36사전을 초기화하는 가장 우아한 방법은 문자와 숫자로 구성됩니다.

에 반대해야한다 : 내가 작성하는 관리 dict = {'0':0, '1':1, '2':2, ....., '9':9, 'a':10, .... , 'x':33, 'y':34, 'z':35}

dict = {} 

for i in range(10): 
    dict[str(i)] = i 

ord_a = ord('a') 

for i in range(0,26): 
    dict[chr(ord_a + i)] = i+10 

당신은 더 좋은 방법의 t 나를 도와 드릴까요 그것을 구현?

{'d': 13, 'e': 14, 'f': 15, 'g': 16, 'r': 27, 'a': 10, 'b': 11, 
'c': 12, 'l': 21, 'm': 22, 'n': 23, 'o': 24, 'h': 17, 'i': 18, 
'j': 19, 'k': 20, '4': 4, '5': 5, '6': 6, '7': 7, '0': 0, '1': 1, 
'2': 2, '3': 3, '8': 8, '9': 9, 'z': 35, 't': 29, 'u': 30, 
'x': 33, 'v': 31, 'y': 34, 'w': 32, 's': 28, 'p': 25, 'q': 26} 

왜이다 :

그리고 한 가지 더, print(dict)는 정렬되지 않은 객체를 반환? 나는 그것을 실제로 정렬했다, 안돼?

답변

4
import string 
keys = string.digits+string.ascii_lowercase 
values = range(len(keys)) 
d = dict(zip(keys,values)) 

dicts에는 정렬되지 않은 키가 있습니다. 주문 키를 사용하려면 collections.OrderedDict을 사용하십시오. (변수 이름을 dict 또는 list 등으로하지 마십시오. 동일한 이름의 파이썬 내장 함수에 쉽게 액세스 할 수 없으므로이 이름은 유용하지 않습니다.

관련 문제