在Python中散列数组
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Python中散列数组相关的知识,希望对你有一定的参考价值。
是否有可能哈希lists
?
例如,我知道元组的哈希是可能的:
>>> hash((1,2,3,4,5,6))
-319527650
但有可能哈希一个list
?
>>> hash([1,2,3,4,5,6])
hash_value
可能解决方案
答案
就试一试吧:
>>> hash((1,2,3))
2528502973977326415
>>> hash([1,2,3])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'
>>> hash(frozenset((1,2,3)))
-7699079583225461316
>>> hash(set((1,2,3)))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'set'
所以你可以得到hash
和tuple
的frozenset
,因为它们是不可变的,你不能为list
和set
这样做,因为它们是可变的。
另一答案
如果您确实需要使用列表作为字典键,请先尝试将其转换为字符串。
my_list = str(my_list)
另一答案
Python不允许您将可变数据用作词典中的键,因为插入后的更改会使对象无法找到。您可以使用元组作为键。
以上是关于在Python中散列数组的主要内容,如果未能解决你的问题,请参考以下文章