Python:将列表转换为带索引的字典

2024-04-25 10:44:44 发布

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

我正在尝试转换以下列表:

list = ['A','B','C']

像这样的字典:

dict = {'A':0, 'B':1, 'C':2}

我试过其他帖子的答案,没有一个对我有用。我现在有以下代码:

{list[i]: i for i in range(len(list))}

这就给了我一个错误:

unhashable type: 'list'

任何帮助都非常感谢。谢谢。


Tags: 答案代码in列表forlen字典type
3条回答

您可以从内置的enumerate中获取列表的索引。您只需要反转索引值映射并使用字典理解来创建字典

>>> lst = ['A','B','C']
>>> {k: v for v, k in enumerate(lst)}
{'A': 0, 'C': 2, 'B': 1}

哦,永远不要将变量命名为内置或类型。

Pythondict构造函数能够将tuple的列表转换为dict,其中键是元组的第一个元素,值是元组的第二个元素。要实现这一点,可以使用生成tuple(index, value)的内置函数^{}

然而问题的要求正好相反,即tuple应该是(value, index)。因此,在将元组元素传递给dict构造函数之前,还需要执行额外的步骤来反转元组元素。在这一步中,我们可以使用内置的^{},并使用^{}将其应用于list的每个元素

>>> lst = ['A', 'B', 'C']
>>> dict(map(reversed, enumerate(lst)))
>>> {'A': 0, 'C': 2, 'B': 1}

使用内置函数dict和zip:

>>> lst = ['A','B','C']
>>> dict(zip(lst,range(len(lst))))

相关问题 更多 >