当前位置: 首页 > 面试题库 >

用Python散列数组

慕光霁
2023-03-14
问题内容

可以散列lists吗?

例如,我知道元组的散列是可能的:

>>> hash((1,2,3,4,5,6))
-319527650

但是可以对a进行哈希处理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'

所以,你可以得到hashtuple,并frozenset因为是不可变的,你不能做到这一点list,并set因为他们是可变的。



 类似资料:
  • 本文向大家介绍Python文件散列,包括了Python文件散列的使用技巧和注意事项,需要的朋友参考一下 示例 哈希是将可变长度的字节序列转换为固定长度的序列的功能。出于多种原因,散列文件可能是有利的。哈希可以用于检查两个文件是否相同,或验证文件的内容是否未损坏或更改。 您可以用来hashlib为文件生成哈希: 对于较大的文件,可以使用固定长度的缓冲区:            

  • 散列函数非常有用,几乎出现在所有信息安全应用程序中。 哈希函数是将数字输入值转换为另一个压缩数值的数学函数。 散列函数的输入具有任意长度,但输出始终具有固定长度。 散列函数返回的值称为message digest或简称hash values 。 下图说明了散列函数。 Java提供了一个名为MessageDigest的类,它属于java.security包。 此类支持诸如SHA-1,SHA 256,

  • 检查arr2是否是子集。输入:输出:是的子集 如果我们使用线性探测。哈希表将如下所示:其中第一项是索引(哈希代码),如果您看到元素7,第二项是值。哈希代码是。所以从1开始,它必须通过检查每个bucket来遍历整个哈希表。这里的时间复杂度是O(n) 稍后,我们将使用哈希表搜索中的所有元素。 所以总的时间复杂度将是Len(arr2)*O(n)。 那么散列的好处是什么呢?

  • 问题内容: 我有兴趣采用任意命令并将其复制到新命令中,然后进行更改。 我想做的一种变更是交换键和值。不幸的是,某些价值观本身就是命令。但是,这会生成“无法散列的类型:’dict’”错误。我真的不介意将值字符串化并提供它的密钥。但是,我希望能够执行以下操作: 有没有一种干净的方法可以执行此操作, 而不会 涉及捕获异常并为“ unhashable type”解析消息字符串? 问题答案: 从Python

  • 根据关键码值(Key value)直接进行访问的数据结构;它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度;这个映射函数叫做散列函数,存放记录的数组叫做散列表。

  • 考虑 HashSet 作为一个 HashMap,在此处我们只关心键(HashSet<T> 实际上只是一个包围 HashMap<T, ()> 的装包(wrapper))。(原文:Consider a HashSet as a HashMap where we just care about the keys (HashSet<T> is, in actuality, just a wrapper a