python' s fifth day for me dict
字典 dict :
key--vlaue
储存大量的数据,而且是关系型数据,查询速度快(二分查询)
数据类型分类:
可变数据类型(不可哈希):list(列表) , dict(字典), set(集合)
不可变数据类型(可哈希):int(整型), bool(布尔型), str(字符串), tuple(元组)
字典的键: 不可变数据类型。
字典的值: 任意数据类型。
容器类型:
容器类(承载各种数据类型):list , tuple , dict
字典的键是唯一的。
字典的顺序:
3.5之前,字典是无序的。
3.6开始,字典创建的时候,按照一定的顺序插入数值,看起来是有序的。
字典的 增 删 改 查
增
第一种:有则覆盖,无则添加。
1 dic = { 2 'name':'顾清秋', 3 'age':'17', 4 'hobby':'Msusic' 5 } 6 print(dic) 7 dic['name'] = '懒笨呆' 8 dic['addr'] = '学校' 9 print(dic)
第二种:无则添加,有则不变。
1 dic = { 2 'name':'顾清秋', 3 'age':'17', 4 'hobby':'Msusic' 5 } 6 print(dic) 7 dic.setdefault('name','懒笨呆') 8 dic.setdefault('addr','学校') 9 print(dic)
删 pop(key) 有返回值,如果删除的是不存在的键会报错,所以一般自定义返回内容
一般定义为None. pop(key,None)
1 dic = { 2 'name':'顾清秋', 3 'age':'17', 4 'hobby':'Msusic' 5 } 6 print(dic.pop('hobby')) 7 print(dic.pop('addr',None)) 8 print(dic)
clear 清空字典内容,且保存空字典。
1 dic = { 2 'name':'顾清秋', 3 'age':'17', 4 'hobby':'Msusic' 5 } 6 dic.clear() 7 print(dic)
del 删除字典或者指定键删除。
1 dic = { 2 'name':'顾清秋', 3 'age':'17', 4 'hobby':'Msusic' 5 } 6 # del dic 7 # print(dic) 8 del dic['name'] 9 print(dic)
popitem 随机删除 返回删除的元组形式的键值对
1 dic = { 2 'name':'顾清秋', 3 'age':'17', 4 'hobby':'Msusic' 5 } 6 dic.popitem() 7 print(dic)
改
第一种:直接对已有的键进行赋值。覆盖原有的value.
1 dic = { 2 'name':'顾清秋', 3 'age':'17', 4 'hobby':'Msusic' 5 } 6 dic['name'] = '懒笨呆' 7 print(dic)
第二种:update 两个字典(dic,dic2),dic.update(dic2) , dic2 不变。dic2 直接将 dic 中原有的键值对覆盖 并且将 dic2 多出来的键值对添加到 dic 中。
1 dic = { 2 'name':'顾清秋', 3 'age':'17', 4 'hobby':'Msusic' 5 } 6 dic2 = { 7 'name':'懒笨呆', 8 'addr':'学校' 9 } 10 dic.update(dic2) 11 print(dic2) 12 print(dic)
查 dict [key] 如果key不存在,则会报错。
1 dic = { 2 'name':'顾清秋', 3 'age':'17', 4 'hobby':'Msusic' 5 } 6 print(dic['name']) 7 print(dic['name1'])
get(key) 有返回值,默认返回None,可以自定义返回值。get(key,'返回值')
1 dic = { 2 'name':'顾清秋', 3 'age':'17', 4 'hobby':'Msusic' 5 } 6 print(dic.get('name1')) 7 print(dic.get('name1','没有此键值对'))
values() key() items() 将字典转换成类似列表的类。
1 dic = { 2 'name':'顾清秋', 3 'age':'17', 4 'hobby':'Msusic' 5 } 6 # print(dic.values()) 7 # for i in dic.values(): 8 # print(i) 9 # print(dic.keys(),type(dic.keys())) 10 # for i in dic.keys(): 11 # print(i) 12 print(dic.items(),type(dic.items())) 13 for i in dic.items(): 14 print(i)
特殊类型 dict 转换成 list
1 dic = { 2 'name':'顾清秋', 3 'age':'17', 4 'hobby':'Msusic' 5 } 6 print(dic.values()) #转化成类似于列表的特殊类型 7 print(list(dic.keys())) #特殊类型转换成列表
概念: 分别赋值
1 a,b = 2,3 2 print(a,b) 3 a,b = (2,3) 4 print(a,b) 5 a,b = [2,3] 6 print(a,b)