2013-11-22 22 views
1

我正在寻找创建一个字典在python 它的关键字是字符'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 

你能帮助我更好的办法ŧ o执行它?

还有一两件事,print(dict)返回一个未排序的对象:

{'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} 

为什么?我实际上初始化它相当有序,不是吗?

回答

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

dicts有无序键。要订购密钥,请使用collections.OrderedDict。 (另外,千万不要命名变量dictlist等,因为这样可以防止你轻易地访问内建的同名Python。内置是有用的,如上所示。)

相关问题