我正在尝试转换以下列表:
list = ['A','B','C']
像这样的字典:
dict = {'A':0, 'B':1, 'C':2}
我尝试了其他职位的答案,但没有任何帮助。我现在有以下代码:
{list[i]: i for i in range(len(list))}
这给了我这个错误:
unhashable type: 'list'
任何帮助深表感谢。谢谢。
我正在尝试转换以下列表:
list = ['A','B','C']
像这样的字典:
dict = {'A':0, 'B':1, 'C':2}
我尝试了其他职位的答案,但没有任何帮助。我现在有以下代码:
{list[i]: i for i in range(len(list))}
这给了我这个错误:
unhashable type: 'list'
任何帮助深表感谢。谢谢。
list
用作变量名2.enumerate
如图所示使用{j:i for i,j in enumerate(l)}
list
可能是列表,尽管您可能犯了其他错误,例如用list: i
代替list[i]: i
。
Answers:
Pythondict
构造函数可以将list转换tuple
为dict
,其中key为tuple的第一个元素,value为tuple的第二个元素。要做到这一点,你可以使用内置函数 enumerate
,其产生tuple
的(index, value)
。
但是问题的要求正好相反,即tuple
应该是(value, index)
。因此,这需要额外的步骤来反转元组元素,然后再传递给dict构造函数。在这一步中,我们可以使用内建函数,reversed
并将其应用于列表的每个元素。map
>>> lst = ['A', 'B', 'C']
>>> dict(map(reversed, enumerate(lst)))
>>> {'A': 0, 'C': 2, 'B': 1}
不要将其list
用作变量名,因为它是Python保留的变量。您还可以利用enumerate
。
your_list = ['A', 'B', 'C']
dict = {key: i for i, key in enumerate(your_list)}