如何在Python中将列表作为dict的键

How to make a list as a key of dict in Python?

本文关键字:dict 的键 列表 Python      更新时间:2023-10-16

在C++中,我将编写map<vector<int>,int> mv;但在Python中,我得到了一个错误"TypeError:不可处理类型:'list'"我想也许在C++中,map是一个红黑树,但在Python中,dict是一个哈希表。但是,我如何在Python中执行与上面相同的操作呢?

不能将列表用作字典键,因为它不可哈希。

>>> mv = {}
>>> mv[[1,2,3]] = 2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'

请改用元组。

>>> mv[(1,2,3)] = 2
>>> mv
{(1, 2, 3): 2}

只要不需要调整密钥大小,tuple可能是最有效的方法:

mv = {}
mv[(1, 2, 3)] = 456