相关疑难解决方法(0)

什么使列表不可用?

所以列表是不可用的:

>>> { [1,2]:3 }
TypeError: unhashable type: 'list'
Run Code Online (Sandbox Code Playgroud)

以下页面给出了解释:

列表是可变类型,不能用作字典中的键(它可以就地更改,使得键不再可以在字典的内部哈希表中找到).

我理解为什么不可能将可变对象用作字典键.但是,即使我只是尝试哈希列表(独立于字典创建),Python也会引发相同的异常

>>> hash( [1,2] )
TypeError: unhashable type: 'list'
Run Code Online (Sandbox Code Playgroud)

Python这样做是为了保证可变类型永远不会被用作字典键吗?或者是否存在使可变对象无法散列的另一个原因,无论我打算如何使用它们?

python hash dictionary list python-internals

7
推荐指数
1
解决办法
940
查看次数

标签 统计

dictionary ×1

hash ×1

list ×1

python ×1

python-internals ×1