一. 字典的简单介绍
字典(dict)是python中唯一的一个映射类型.他是以{ }括起来的键值对组成. 在dict中key是 唯一的. 在保存的时候, 根据key来计算出一个内存地址. 然后将key-value保存在这个地址中. 这种算法被称为hash算法
已知的可哈希(不可变)的数据类型: int, str, tuple, bool
不可哈希(可变)的数据类型: list, dict, set
语法 :
{key1: value1, key2: value2....}
注意: key必须是不可变(可哈希)的. value没有要求.可以保存任意类型的数据
dict保存的数据不是按照我们添加进去的顺序保存的. 是按照hash表的顺序保存的. 而hash表不是连续的. 所以不能进行切片工作. 它只能通过key来获取dict中的数据
二. 字典的增删改查和其他相关操作
1. 增加
# 增加 #如果dict中没有这个key,就会新增一个key_value的组合进dict dic = {'name':'武松'} dic['行者'] = '武松' print(dic) dic.setdefault('九纹龙','') print(dic)
2. 删除
# 删除 dic = {'及时雨':'宋江','玉麒麟':'卢俊义','智多星':'吴用'} ret = dic.pop('及时雨') #如果dic没有这个key,则报错.反之,返回被删value print(dic) print(ret) del dic['玉麒麟'] #随机删除 ret = dic.popitem() #清空字典所有内容 dic.clear() print(dic)
3. 修改
#修改 dic = {'及时雨':'宋江','玉麒麟':'卢俊义','智多星':'吴用'} dic1 = {'及时雨':'宋江','玉麒麟':'杨雄','智多星':'吴用'} dic.update(dic1) # 把dic1中的内容更新到dic中. 如果key重名. 则修改替换. 如果不存 在key, 则新增. dic = {'age':18,'name':'jiam','money':10000} dic['age'] = dic['age'] - 1 #通过key来进行修改 print(dic)
4. 查询
查询⼀一般⽤用key来查找具体的数据.
#查询 dic = {'age':18,'name':'jiam','money':10000} print(dic['name']) print(dic['hobby']) #通过key进行查询,如果key不存在,则报错 print(dic.get('hobby')) #key不存在,返回默认值None,也可新设置默认值 # 1. 首先判断原来字典有没有这个key。如果没有,执行新增. # 2. 用这个key去字典中查询,返回查到的结果 dic.setdefault('hobby','篮球') ret = dic.setdefault('name') print(ret) print(dic)
5. 其他相关操作
# 解构,解包 a,b = (1,2) print(b)
dic = {'及时雨':'宋江','玉麒麟':'卢俊义','智多星':'吴用'} print(dic.keys()) #打印所有的key print(dic.values()) #打印所有的value print(dic.items()) for a,b in dic.items(): print(a) for a in dic: print(a)#直接循环,打印的是key print(dic[a])
#修改
dic = {'及时雨':'宋江','玉麒麟':'卢俊义','智多星':'吴用'}
dic1 = {'及时雨':'宋江','玉麒麟':'杨雄','智多星':'吴用'}
# 把dic1中的内容更新到dic中. 如果key重名. 则修改替换. 如果不存 在key, 则新增.
dic = {'age':18,'name':'jiam','money':10000}
dic['age'] = dic['age'] - 1 #通过key来进行修改
print(dic)