23 - 字典键值支持哪些数据类型

举报
ruochen 发表于 2021/03/27 23:44:40 2021/03/27
【摘要】 1. 有哪些数据类型不能作为字典键值的类型 列表字典 d = {} d['name'] = 'Bill' d[10] = 20 d[True] = False d[12.3] = 20.1 d[(1, 2, 3)] = [4 ,5 ,6] class Person: pass p1 = Person() p2 = Person() d[p1] = 'p1' ...

1. 有哪些数据类型不能作为字典键值的类型

  • 列表
  • 字典
d = {}
d['name'] = 'Bill'
d[10] = 20
d[True] = False
d[12.3] = 20.1

d[(1, 2, 3)] = [4 ,5 ,6]

class Person: pass

p1 = Person()
p2 = Person()

d[p1] = 'p1'
d[p2] = 'p2'

for k,v in d.items(): print(k, ' - ', v) print(d[12.3])

# 无法哈希
# d[[1, 2, 3]] = 3

# d[{'a': 3}] = 4

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
name  -  Bill
10  -  20
True  -  False
12.3  -  20.1
(1, 2, 3)  -  [4, 5, 6]
<__main__.Person object at 0x000001C757A3FE48>  -  p1
<__main__.Person object at 0x000001C75802D0B8>  -  p2
20.1

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

2. 为什么列表和字典类型的值不能作为字典的键值

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

24 - 对产生器类型的对象使用切片

文章来源: ruochen.blog.csdn.net,作者:若尘,版权归原作者所有,如需转载,请联系作者。

原文链接:ruochen.blog.csdn.net/article/details/104345080

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。