You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

如何从Python列表创建值为索引的字典?最Pythonic的实现方式?

从Python列表创建元素为键、索引为值的字典

嘿,这个需求其实在Python里有好几种实现方式,我来给你拆解一下,重点说最符合Python风格的写法:

方法一:手动遍历构建字典

如果是刚接触Python的新手,手动循环的方式最容易理解。我们可以用enumerate()函数同时获取列表的索引和对应的元素,然后逐个添加到字典里:

a = ['a', 'b', 'c']
b = {}
for idx, item in enumerate(a):
    b[item] = idx

运行后b就是你想要的{'a':0, 'b':1, 'c':2}

最符合Python风格的写法:字典推导式

Python推崇简洁、可读的代码,字典推导式就是这类场景的最优解。结合enumerate(),一行代码就能完成转换:

a = ['a', 'b', 'c']
b = {item: idx for idx, item in enumerate(a)}

这种写法既简洁又直观,是Python社区公认的"Pythonic"实现方式,可读性和效率都很高。

额外补充:用dict()构造函数实现

你也可以用dict()构造函数配合生成器表达式来完成,不过这种写法不如字典推导式直观,一般不推荐作为首选:

a = ['a', 'b', 'c']
b = dict((item, idx) for idx, item in enumerate(a))

注意事项

如果你的列表里存在重复元素,后面出现的元素会覆盖前面的键值对。比如a = ['a', 'b', 'a'],最终得到的字典会是{'a':2, 'b':1},因为字典的键是唯一的。

内容的提问来源于stack exchange,提问作者yukashima huksay

火山引擎 最新活动