从enumerate()交换索引和值?

2024-03-29 09:22:27 发布

您现在位置:Python中文网/ 问答频道 /正文

Python的enumerate()返回索引和值的元组:

enumerate('abc')
((0,'a'),(1,'b'),(2,'c'))

我想用item,index顺序(('a', 0))代替那些元组。在

我怎么能做到呢?在

我想用颠倒的元组来创建一个字典,比如:

^{pr2}$

Tags: index字典顺序item元组abcenumeratepr2
3条回答

总有一些好的,老式的匿名函数来帮你完成工作。这不是最干净的解决方案,但它能完成任务。在

dict(map(lambda x: (x[1], x[0]), enumerate('abc')))

一种解决方案是使用itertools库:

import itertools
dict(zip('abc', itertools.count()))

itertools.count()是生成0、1、2的生成器对象。。。而zip函数只是。。。把这两个拉在一起。在

使用dict理解来反转它:

result = {v: i for i, v in enumerate('abc')}

寻址@karakfa的点-这将覆盖可能重复的元素。如果字符串是abca,则为a分配的索引值将包含3,而不是{}。在

相关问题 更多 >