列表不可哈希,但元组可哈希?

发布于 2021-01-29 17:50:43

在如何哈希列表?有人告诉我,我应该转换为一个元组第一,如[1,2,3,4,5](1,2,3,4,5)

因此,第一个不能散列,而第二个可以散列。为什么*?


*我并不是真正地在寻求详细的技术说明,而是在寻找一种直觉

关注者
0
被浏览
49
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    主要是因为元组是不可变的。承担以下工作:

    >>> l = [1, 2, 3]
    >>> t = (1, 2, 3)
    >>> x = {l: 'a list', t: 'a tuple'}
    

    现在,当您这样做时会发生什么l.append(4)?您已修改字典中的键!远道而来!如果您熟悉哈希算法的工作原理,这会让您感到恐惧。另一方面,元组是绝对不变的。t += (1,)看起来好像是在修改元组,但实际上并非如此:它只是创建一个 新的 元组,而字典键保持不变。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看