Python面试必考重点之列表,元组和字典第十三关——有关于字典键值支持的数据类型

161 阅读2分钟

「这是我参与2022首次更文挑战的第13天,活动详情查看:2022首次更文挑战」。

面试题第十三关:

第一部分——考点:

  • 学习字典键值支持的数据类型

第二部分——面试题:

1.面试题一:有哪些数据类型不能作为字典键值的类型

3.面试题二:为什么列表和字典类型的值不能作为字典的键值


第三部分——解析:

面试题一 之 有哪些数据类型不能作为字典键值的类型:

  • 列表和字典本身

    d = {} d[[1,2,3]] = 3 #会报错 d[{'a':3}] = 4 #也会报错

说明字典和列表不能作为字典的键

面试题二 之 为什么列表和字典类型的值不能作为字典的键值:

  • 因为键是不可变的。列表和字典的值是可以变化的,一旦变化就再也找不到value了。

  • 深入探讨的话,关于列表不能做字典的键最直接的答案就是:list没有支持__hash__方法!而要想作为字典的键的数据类型就必须支持__hash__方法!!!

  • 而且如果想要深入探讨为什么这两个数据类型不能做字典键的原因的话,就需要涉及到Python中的数据类型可变和不可变两种。不可变类型有数字、字符串、布尔和元组;可变类型有列表、字典、集合。然后就这个方向深入探讨才可,略复杂,后续会出专门文章讲解~

🔆In The End!

👑有关于Me

个人简介:我是一个硬件出身的计算机爱好者,喜欢program,源于热爱,乐于分享技术与所见所闻所感所得。文章涉及Python,C,单片机,HTML/CSS/JavaScript及算法,数据结构等。

从现在做起,坚持下去,一天进步一小点,不久的将来,你会感谢曾经努力的你!

认真仔细看完本文的小伙伴们,可以点赞收藏并评论出你们的读后感。并可关注本博主,在今后的日子里阅读更多技术文哦~

如有错误或者言语不恰当的地方可在评论区指出,谢谢!
如转载此文请联系我征得本人同意,并标注出处及本博主名,谢谢 !