首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何以简明的方式创建一个以字母为键的字典?

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

Stack Overflow用户
提问于 2013-02-16 04:34:18
回答 5查看 9.4K关注 0票数 8

我创建了一个包含26个字母的字典,如下所示:

代码语言:javascript
运行
复制
aDict={
    "a": 1,
    "b": 2,
    "c": 3,
    "d": 4,
    etc...
}

我正在努力让我的代码更好,我的问题是,有没有更简单的方法来做到这一点,而不是键入所有这些数字?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-02-16 04:37:09

你可以在这里使用string.ascii_lowercase和字典理解。

代码语言:javascript
运行
复制
In [4]: from string import ascii_lowercase as al

对于Python 2.7+:

代码语言:javascript
运行
复制
In [5]: dic = {x:i for i, x in enumerate(al, 1)}

对于Python 2.6或更早版本:

代码语言:javascript
运行
复制
In [7]: dic = dict((y, x) for x, y in enumerate(al, 1))
票数 17
EN

Stack Overflow用户

发布于 2013-02-16 04:37:02

代码语言:javascript
运行
复制
aDict = dict(zip('abcdefghijklmnopqrstuvwxyz', range(1, 27)))

或者,不用硬编码字母表:

代码语言:javascript
运行
复制
import string
aDict = dict(zip(string.ascii_lowercase, range(1, 27)))
票数 6
EN

Stack Overflow用户

发布于 2013-02-16 04:38:16

试试这个,它可以在Python 2.6和更早的版本中工作:

代码语言:javascript
运行
复制
from string import ascii_lowercase
d = {}
for i, c in enumerate(ascii_lowercase, 1):
    d[c] = i

如果您使用的是Python2.7或更新版本,则可以使用dictionary comprehension

代码语言:javascript
运行
复制
d = {c : i for i, c in enumerate(ascii_lowercase, 1)}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14902904

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档