欢迎大家访问我的网站!
图片名称

Python学习:为什么不可哈希的列表可以作为字典的键?

iwfacn2024-11-11 19:09:2860Python学习Python知识

Python学习:为什么不可哈希的列表可以作为字典的键?-第1张图片

Python学习:为什么不可哈希的列表可以作为字典的键?-第2张图片

不可哈希列表作为元组的键

众所周知,Python 中的字典 (dict) 对象不接受不可哈希的对象作为其键。已知哈希类型包括字符串、整数、浮点数、布尔值、元组和 None;不可哈希类型有字典、数组和集合。

但在某些情况下,用 ([1, 2],) 包裹不可哈希对象 list 后,仍然可以将其用作字典键。这是因为 ([1, 2],) 本身作为整体是可哈希的元组,即使其包含不可哈希元素。

元组哈希函数

元组的哈希函数会计算其内部所有元素的哈希值。因此,([1, 2],) 的哈希值实际上是由 1 和 2 的哈希值共同决定的。

自定义对象的可哈希性

此外,自定义类也可以通过实现 __hash__() 方法来使其实例可哈希。通过定义该方法,可以控制对象的哈希值生成方式。在此例中,custom_obj 的哈希值是由其 value 属性决定的。

以上就是为什么不可哈希的列表可以作为字典的键?的详细内容,

转载声明:本站发布文章及版权归原作者所有,转载本站文章请注明文章来源!

本文链接:http://www.iwfacn.com/114.html

图片名称
热门文章
随机文章
热门标签
侧栏广告位
图片名称
图片名称