我创建了一个包含26个字母的字典,如下所示:
aDict={
"a": 1,
"b": 2,
"c": 3,
"d": 4,
etc...
}我正在努力让我的代码更好,我的问题是,有没有更简单的方法来做到这一点,而不是键入所有这些数字?
发布于 2013-02-16 04:37:09
你可以在这里使用string.ascii_lowercase和字典理解。
In [4]: from string import ascii_lowercase as al对于Python 2.7+:
In [5]: dic = {x:i for i, x in enumerate(al, 1)}对于Python 2.6或更早版本:
In [7]: dic = dict((y, x) for x, y in enumerate(al, 1))发布于 2013-02-16 04:37:02
aDict = dict(zip('abcdefghijklmnopqrstuvwxyz', range(1, 27)))或者,不用硬编码字母表:
import string
aDict = dict(zip(string.ascii_lowercase, range(1, 27)))发布于 2013-02-16 04:38:16
试试这个,它可以在Python 2.6和更早的版本中工作:
from string import ascii_lowercase
d = {}
for i, c in enumerate(ascii_lowercase, 1):
d[c] = i如果您使用的是Python2.7或更新版本,则可以使用dictionary comprehension
d = {c : i for i, c in enumerate(ascii_lowercase, 1)}https://stackoverflow.com/questions/14902904
复制相似问题