初始化字典最优雅的方式是字符和数字

时间:2013-11-22 08:40:58

标签: python dictionary

我正在寻找在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

你能帮助我更好地实施它吗?

还有一件事,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}

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

1 个答案:

答案 0 :(得分:4)

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

dicts有无序密钥。要订购密钥,请使用collections.OrderedDict。 (另外,永远不要命名变量dictlist等,因为这会阻止您轻松访问同名的Python内置。内置函数很有用,正如您所见的上方。)