首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以优雅方式快速构建大型字典

以优雅方式快速构建大型字典
EN

Stack Overflow用户
提问于 2016-10-12 20:36:30
回答 3查看 71关注 0票数 0

我有一个大小约为30000的列表:['aa', 'bb', 'cc', 'dd', ...],从这个列表中,我想构建一个将元素映射到索引的dict,所以结果dict是{'aa': 0, 'bb': 1, 'cc': 2, 'dd': 3, ...}。下面是我的代码:

代码语言:javascript
复制
cnt = 0
mp = {}
for name in name_list:
    mp[name] = cnt
    cnt += 1
return mp

看起来我的代码并不简洁有效,那么如何改进呢?

EN

回答 3

Stack Overflow用户

发布于 2016-10-12 20:38:55

最短的是使用enumerate和字典理解,我想:

代码语言:javascript
复制
mp = {element: index for index, element in enumerate(name_list)}
票数 5
EN

Stack Overflow用户

发布于 2016-10-12 20:38:31

您可以使用enumerate创建列表对象和索引之间的映射,然后对相反的输出调用dict

代码语言:javascript
复制
mp = dict(tup[::-1] for tup in enumerate(name_list))
票数 3
EN

Stack Overflow用户

发布于 2016-10-12 21:13:59

对每一项使用列表索引如何?

代码语言:javascript
复制
mp = {item: name_list.index(item) for item in name_list}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39998790

复制
相关文章

相似问题

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