在C ++中,我将会map<vector<int>,int> mv;
但在Python中,我收到“TypeError:unhashable type:'list'”的错误
我想也许在C ++中,map是一个红黑树,但在Python中,dict是一个哈希表。
但是我怎么能在Python中做同样的事情呢?
答案 0 :(得分:3)
您不能将列表用作字典键,因为它不可清除。
>>> 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}
答案 1 :(得分:1)
只要您不需要调整密钥的大小,tuple
可能是最有效的方法:
mv = {}
mv[(1, 2, 3)] = 456