如何以简洁的方式创建一个以字母为键的字典?

8 投票
5 回答
10351 浏览
提问于 2025-04-17 16:02

我创建了一个包含26个字母的字典,像这样:

aDict={
    "a": 1,
    "b": 2,
    "c": 3,
    "d": 4,
    etc...
}

我想让我的代码更简洁,我的问题是,有没有更简单的方法来实现这个,而不需要一个个输入这些数字呢?

5 个回答

2

试试这个方法,它在Python 2.6及更早版本中有效:

from string import ascii_lowercase
d = {}
for i, c in enumerate(ascii_lowercase, 1):
    d[c] = i

如果你使用的是Python 2.7或更新的版本,你可以使用字典推导式

d = {c : i for i, c in enumerate(ascii_lowercase, 1)}
6
aDict = dict(zip('abcdefghijklmnopqrstuvwxyz', range(1, 27)))

或者不直接写死字母表:

import string
aDict = dict(zip(string.ascii_lowercase, range(1, 27)))
17

你可以使用 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))

撰写回答