登录
首页 >  文章 >  python教程

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

时间:2024-11-22 14:34:18 467浏览 收藏

编程并不是一个机械性的工作,而是需要有思考,有创新的工作,语法是固定的,但解决问题的思路则是依靠人的思维,这就需要我们坚持学习和更新自己的知识。今天golang学习网就整理分享《为什么不可哈希的列表可以作为字典的键?》,文章讲解的知识点主要包括,如果你对文章方面的知识点感兴趣,就不要错过golang学习网,在这可以对大家的知识积累有所帮助,助力开发能力的提升。

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

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

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

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

元组哈希函数

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

自定义对象的可哈希性

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

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《为什么不可哈希的列表可以作为字典的键?》文章吧,也可关注golang学习网公众号了解相关技术文章。

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>