Python中哪些数据类型支持哈希操作?
- 内容介绍
- 文章标签
- 相关推荐
本文共计280个文字,预计阅读时间需要2分钟。
如果对象是可散列的,那么在这个对象的整个生命周期中,它的散列值是不变的。Python中的不可变类型(如x)都是可散列的。然而,元组本身是不可变序列,但其中的元素可能是可变的(如其他不可变类型)。
- 如果一个对象是可散列的,那么在这个对象的生命周期中,它的散列值是不变的。
- Python里所有的不可变类型都是可散列的(x)。虽然元组本身是不可变序列,它里面的元素可能是其他可变类型的引用。
------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-1-35e31e935e9e> in <module>
----> 1 hash([1,2,3])
TypeError: unhashable type: 'list'
In [2]: hash((1,2,3))
Out[2]: 2528502973977326415
In [3]: hash((1,2,[1,2,3]))
------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-3-3dc2017fd13d> in <module>
----> 1 hash((1,2,[1,2,3]))
TypeError: unhashable type: 'list'
In [4]: hash((1,2,(1,2,3)))
Out[4]: -3548400018562967053
本文共计280个文字,预计阅读时间需要2分钟。
如果对象是可散列的,那么在这个对象的整个生命周期中,它的散列值是不变的。Python中的不可变类型(如x)都是可散列的。然而,元组本身是不可变序列,但其中的元素可能是可变的(如其他不可变类型)。
- 如果一个对象是可散列的,那么在这个对象的生命周期中,它的散列值是不变的。
- Python里所有的不可变类型都是可散列的(x)。虽然元组本身是不可变序列,它里面的元素可能是其他可变类型的引用。
------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-1-35e31e935e9e> in <module>
----> 1 hash([1,2,3])
TypeError: unhashable type: 'list'
In [2]: hash((1,2,3))
Out[2]: 2528502973977326415
In [3]: hash((1,2,[1,2,3]))
------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-3-3dc2017fd13d> in <module>
----> 1 hash((1,2,[1,2,3]))
TypeError: unhashable type: 'list'
In [4]: hash((1,2,(1,2,3)))
Out[4]: -3548400018562967053

