字典
字典是无序的
字典关联性强
字典元素为键值对 且 键 唯一 键 是 可哈西的(不可变数据类型:int str bool tuple)
不可哈西(list dict set)
字典是唯一一个映射的数据类型
1 dic_1 = {'name':'Tom','age':20} 2 dic_2 = {'class_1':['Tom','xiaoming','ligang'],'class_2':['张三','李四','王五']} 3 4 键是唯一的 5 dic = {'name':'Tom','name':'李刚','age':20} 6 print(dic) #两个'name'
一、增
dic[key] = value
原字典已经存在key 覆盖
如果没有,则添加
1 dic = {'name':'Tom','son':'李刚','age':20} 2 dic['job'] = 'teacher' 3 print(dic) 4 # {'name': 'Tom', 'son': '李刚', 'age': 20, 'job': 'teacher'} 5 dic = {'name':'Tom','son':'李刚','age':20} 6 dic['son'] = '张三' 7 print(dic) 8 # {'name': 'Tom', 'son': '张三', 'age': 20}
setdefault(self, key, default = None)
键没有,添加
已经有键,不操作
1 dic = {'name':'Tom','son':'李刚','age':20} 2 dic.setdefault('hobby') #default没有的情况,默认为None 3 # {'name': 'Tom', 'son': '李刚', 'age': 20, 'hobby': None} #None 就是空 分配给一个特殊的所有的空的公共内存空间 4 dic = {'name':'Tom','son':'李刚','age':20} 5 dic.setdefault('hobby','girls') 6 # {'name': 'Tom', 'son': '李刚', 'age': 20, 'hobby': 'girls'} 7 dic = {'name':'Tom','son':'李刚','age':20} 8 dic.setdefault('name','王五') #字典中已经有'name' key ,就不对字典做任何修改 9 # {'name': 'Tom', 'son': '李刚', 'age': 20} #
二、删
pop(self, key)
通过键删除
如果键不存在,报错
1 dic = {'name':'Tom','son':'李刚','age':20} 2 print(dic.pop('name')) #通过键删除 3 print(dic) 4 # Tom 5 # {'son': '李刚', 'age': 20} 6 7 dic = {'name':'Tom','son':'李刚','age':20} 8 print(dic.pop('city')) #如果键不存在,报错 KeyError:*** 9 print(dic) 10 11 # Traceback (most recent call last): 12 # File "D:/Demo/test2.py", line 2, in <module> 13 # print(dic.pop('city')) 14 # KeyError: 'city' 15 16 dic = {'name':'Tom','son':'李刚','age':20} 17 print(dic.pop('city',None)) #加上返回值None,且键不存在,说明key不存在, 当然也可以把None换成 '不存在' 18 print(dic) 19 # None 20 # {'name': 'Tom', 'son': '李刚', 'age': 20}