zac seo博客,网站seo推广员招聘,无锡设计网站建设,策划公司排名前十名1 字典2 Python内置的字典数据类型#xff1a;全称dictionary#xff0c;在其他语言中也称为map#xff0c;使用键-值#xff08;key-value#xff09;存储#xff0c;具有极快的查找速度3 4 当将key-value放进dict时#xff0c;dict会根据key算出value要存放地址#… 1 字典2 Python内置的字典数据类型全称dictionary在其他语言中也称为map使用键-值key-value存储具有极快的查找速度3 4 当将key-value放进dict时dict会根据key算出value要存放地址并将value放入该地址5 当通过key从dict获取value时dict会根据key算出value存放的地址然后访问该地址获取value6 这个通过key计算位置的算法称为哈希算法(Hash)7 8 dict的一个key只能对应一个value多次对一个key放入value后面的值会覆盖前面的值9 dict内部存放的顺序和key放入的顺序是没有关系的
10
11 dict和list的比较
12 list1) 查找和插入的时间随着元素的增加而增加
13 list总是从第一个元素开始查找知只到找到目标元素为止
14 2) 内存占用大内存浪费多
15
16 dict1) 查找和插入的速度极快不会随着key的增加而变慢
17 dict先从字典索引查到value具体地址后再根据具体地址找到value值
18 这样即使dict里的数据很多也不会降低查询速度
19 就像当你知道某个单词在字典的具体哪一页后即使字典再厚你总能一下子找到那个单词
20 2) 内存占用小内存浪费少
21
22 注意1) dict是用空间来换取时间的一种方法
23 2) dict的key必须是不可变对象
24 由于key是dict用来计算value的存储地址的如果key是经常变化的则每次计算相同的key会得出不同的存储地址那dict内部就完全混乱了
25 因此要保证通过key计算得出的value的存储地址的正确性作为key的对象就不能变
26 在Python中字符串、整数等都是不可变的所以可放心地作为key,而list是可变的就不能作为key
27
28 使用示例
29
30 初始化dict
31 d {Michael: 95, Bob: 75, Tracy: 85}
32 print(d[Michael]) #输出Michael
33 print(d[tttt]) #输出key不存在会报错如KeyError: tttt
34
35 通过key放入dict
36 d[Adam] 67
37 print(d[Adam]) #输出67
38
39 判断key是否存在
40 1 通过in判断key是否存在
41 print(Thomas in d) #输出False
42
43 2 通过dict提供的get()方法如果key不存在可以返回None或者自定义value
44 print(d.get(Thomas)) #输出None,控制台什么也不显示
45 print(d.get(Thomas),-1) #输出-1
46
47 删除key-value键值对
48 print(d.pop(Bob)) #输出75, 返回该key对应的value
49
50 将list放入dict
51 d{[1,2,3]} #typeError:unhashable type:list, 原因是list是可变的不能作为key 转载于:https://www.cnblogs.com/SP-0306/p/10882579.html