如何在Python中将列表作为dict的键
How to make a list as a key of dict in Python?
在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
相关文章:
- 使用一个考虑到std::map中键值的滚动或换行的键
- 使用模板化的键类型定义 std::map,该键类型基于作为参数接收的函数
- 使用字符数组作为 Map 中的键
- 如何在C++中访问有序映射中的键的范围/间隔?
- 查找不存在的键时,unordered_map返回什么
- 如何使用 std::string 作为 QHash 的键?
- 是否有像地图这样的C++结构,但我得到的不是值的键,而是值的句柄?
- C++ 映射的键/值的用户自定义名称?
- 比较它们之间的元素并获取公共值的键
- 更改多重映射容器中所有元素的键值
- 使用 nullptr 作为 std::unordered_map 的键有什么后果吗?
- CPP 使用不存在的键访问映射
- 为什么 Boost multi_index只修改第一个索引的键时对第二个索引进行比较?
- 找不到最新插入到 std::map 中的键
- 将相同的键添加到低序映射
- 从 AVL 树中删除指向 1 个或多个值的键
- 通过从矢量中获取键和与映射中的键对应的值来创建映射
- 插入 std::set 作为 std::map 的键
- 如何使用用户定义的键控制和修改 std::map 排序
- 如何在Python中将列表作为dict的键