在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

可能解决方案

Very in depth explanation to the hashing of lists, here.

答案

就试一试吧:

>>> 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'

所以你可以得到hashtuplefrozenset,因为它们是不可变的,你不能为listset这样做,因为它们是可变的。

另一答案

如果您确实需要使用列表作为字典键,请先尝试将其转换为字符串。 my_list = str(my_list)

另一答案

Python不允许您将可变数据用作词典中的键,因为插入后的更改会使对象无法找到。您可以使用元组作为键。

以上是关于在Python中散列数组的主要内容,如果未能解决你的问题,请参考以下文章

在 Python 中散列文件

在 .NET 中散列 SecureString

在Python中散列一个整数以匹配Oracle的STANDARD_HASH

MongoDB游标在Perl中散列

无法在平均堆栈中散列密码

在redis中散列哈希