通过枚举函数创建python字典

通过枚举函数创建python字典,python,Python,我正在寻找一种更简单的方法来创建这个python字典。我可以知道枚举函数是否有帮助吗 a_dict = {'a':0, 'b':1, 'c':2, ....} 您可以简单地使用string.ascii_lowercase这是所有小写字符的字符串,然后您可以zip从0到len(string.ascii_lowercase)的小写字母和数字列表,然后将它们转换为dict 但是,您可能希望使用一些其他字母表,如string.ascii_字母,string.ascii_大写字母,string.lett

我正在寻找一种更简单的方法来创建这个python字典。我可以知道枚举函数是否有帮助吗

a_dict = {'a':0, 'b':1, 'c':2, ....}

您可以简单地使用
string.ascii_lowercase
这是所有小写字符的字符串,然后您可以
zip
0
len(string.ascii_lowercase)
的小写字母和数字列表,然后将它们转换为
dict

但是,您可能希望使用一些其他字母表,如
string.ascii_字母
string.ascii_大写字母
string.letters
字符串.标点符号
,等等

您可以通过将上述字符串串接为
string来轻松筛选字典中所需的键。ascii_小写+字符串。ascii_大写
将为我们提供一个字符串,首先包含26个小写字母,然后是26个大写字母,您还可以应用切片方法来获得所需的字符集,比如
string.ascii_小写[0:15]
会给你
“abcdefghijklmn”


您可以简单地使用
string.ascii_lowercase
这是所有小写字符的字符串,然后您可以
zip
0
len(string.ascii_lowercase)
的小写字母和数字列表,然后将它们转换为
dict

但是,您可能希望使用一些其他字母表,如
string.ascii_字母
string.ascii_大写字母
string.letters
字符串.标点符号
,等等

您可以通过将上述字符串串接为
string来轻松筛选字典中所需的键。ascii_小写+字符串。ascii_大写
将为我们提供一个字符串,首先包含26个小写字母,然后是26个大写字母,您还可以应用切片方法来获得所需的字符集,比如
string.ascii_小写[0:15]
会给你
“abcdefghijklmn”


我会使用无限数生成器,如
itertools.count
从0生成数字。然后使用count压缩ascii字符,并创建生成字典所需的元组

>>> from itertools import count, izip
>>> import string
>>> 
>>> dict(izip(string.ascii_lowercase, count()))
{'a': 0, 'c': 2, 'b': 1, 'e': 4, 'd': 3, 'g': 6, 'f': 5, 'i': 8, 'h': 7, 'k': 10, 'j': 9, 'm': 12, 'l': 11, 'o': 14, 'n': 13, 'q': 16, 'p': 15, 's': 18, 'r': 17, 'u': 20, 't': 19, 'w': 22, 'v': 21, 'y': 24, 'x': 23, 'z': 25}

我会使用无限数生成器,如
itertools.count
从0生成数字。然后使用count压缩ascii字符,并创建生成字典所需的元组

>>> from itertools import count, izip
>>> import string
>>> 
>>> dict(izip(string.ascii_lowercase, count()))
{'a': 0, 'c': 2, 'b': 1, 'e': 4, 'd': 3, 'g': 6, 'f': 5, 'i': 8, 'h': 7, 'k': 10, 'j': 9, 'm': 12, 'l': 11, 'o': 14, 'n': 13, 'q': 16, 'p': 15, 's': 18, 'r': 17, 'u': 20, 't': 19, 'w': 22, 'v': 21, 'y': 24, 'x': 23, 'z': 25}

使用
enumerate
可以在
dict
中使用and:

>>> import string
>>> dict((j,i) for i,j in enumerate(string.ascii_lowercase))
{'a': 0, 'c': 2, 'b': 1, 'e': 4, 'd': 3, 'g': 6, 'f': 5, 'i': 8, 'h': 7, 'k': 10, 'j': 9, 'm': 12, 'l': 11, 'o': 14, 'n': 13, 'q': 16, 'p': 15, 's': 18, 'r': 17, 'u': 20, 't': 19, 'w': 22, 'v': 21, 'y': 24, 'x': 23, 'z': 25}

由于
enumerate
格式返回元组(索引,元素)
您可以循环它,只需使用元素更改索引,然后将其转换为dict。

使用
enumerate
您可以在
dict
中使用和:

>>> import string
>>> dict((j,i) for i,j in enumerate(string.ascii_lowercase))
{'a': 0, 'c': 2, 'b': 1, 'e': 4, 'd': 3, 'g': 6, 'f': 5, 'i': 8, 'h': 7, 'k': 10, 'j': 9, 'm': 12, 'l': 11, 'o': 14, 'n': 13, 'q': 16, 'p': 15, 's': 18, 'r': 17, 'u': 20, 't': 19, 'w': 22, 'v': 21, 'y': 24, 'x': 23, 'z': 25}

由于
枚举
(索引,元素)的格式返回元组
您可以循环它,只需使用元素更改索引,然后将其转换为dict。

假设
表示您需要字母表:

{chr(i+97): i for i in range(26)}

假设
表示您想要字母表:

{chr(i+97): i for i in range(26)}

为什么不
range(26)
?@Kasra OP有时可能不需要26个字符,可能他只需要
[0:15]
中的一条,或者可能需要大写和小写字符。既然你通过了
ascii\u小写
,你需要通过26个,否则你会提到;)为什么不
range(26)
?@Kasra OP有时可能不需要26个字符,可能他只需要
[0:15]
中的一条,或者可能需要大写和小写字符。既然你通过了
ascii\u小写
,你需要通过26个,否则你会提到;)由于OP要求使用enumerate,您一定会使用它:PWell,OP还说“我正在寻找一种更简单的方法来创建这个python字典”,这就是。我对这一部分做出了回应。由于OP要求使用enumerate,您一定会使用它:PWell,OP还说“我正在寻找一种更简单的方法来创建这个python字典”,这就是。我在回应那部分。