以list为元素的元组可以作为字典python中的键吗?

时间:2018-09-04 20:27:06

标签: python

以list为元素的元组可以在任何阶段进行修改吗?

1 个答案:

答案 0 :(得分:1)

Tuples是可哈希的,因此,并且仅当其所有元素都是可哈希的时才可用作dict键。

这是您直观的期望,并且很容易测试:

>>> {(1, 2): 3}
{(1, 2): 3}
>>> {(1, [2]): 3}
TypeError: unhashable type: 'list'

但是,如果您想知道它的记录位置,它位于序列类型-listtuplerange Immutable Sequence Types部分中>文档:

  

不可变序列类型通常不能实现的唯一操作是可变hash()内置。

     

此支持允许将诸如tuple实例之类的不可变序列用作dict键并存储在setfrozenset实例中。

     

尝试对包含不可哈希值的不可变序列进行哈希处理将导致TypeError