字典
字典是一些列键-值对,每个键都与一个值相关联。
dict key 必须是不可变数据类型,可哈希, value:任意数据类型。
数据类型划分:可变数据类型,不可变数据类型
不可变数据类型:元组,bool int str 可哈希
可变数据类型:list,dict set 不可哈希
dict 优点:二分查找去查询
存储大量的关系型数据
特点:无序的
增
dic1 = {'age': 18, 'name': 'jin', 'sex': 'male',}
dic1['high'] = 60 #没有键值对,添加
print(dic1) --->{'age': 18, 'name': 'jin', 'sex': 'male', 'high': 60}
dic1['age'] = 16 #如果有键,则值覆盖 相当于改
print(dic1) ---->{'age': 16, 'name': 'jin', 'sex': 'male'}
dic1.setdefault('weight') # 没有此键才添加。 不写值默认返回None
print(dic1)----->{'age': 18, 'name': 'jin', 'sex': 'male', 'weight': None}
dic1.setdefault('weight',150)
print(dic1)----->{'age': 18, 'name': 'jin', 'sex': 'male', 'weight': 150}
dic1.setdefault('name','sb') # 有此键,不做任何改变
print(dic1) ----->{'age': 18, 'name': 'jin', 'sex': 'male'}
删
dic1 = {'age': 18, 'name': 'jin', 'sex': 'male',}
dic1.pop('age') # 按键去删除
print(dic1)----->{'name': 'jin', 'sex': 'male'}
print(dic1.pop('age')) 有返回值,返回的是该键所对应的值
dic1.pop('二哥') # 删没有此键,会报错
print(dic1)----->KeyError: '二哥'
print(dic1.pop('二哥',None)) ----》None# 不知道有没有这个键 的时候,加个参数并返回一般用None,给予提示
dic1.popitem() # 随机删除
print(dic1)---->{'age': 18, 'name': 'jin'}
print(dic1.popitem()) ----> ('name', 'jin') 有返回值,返回值为 元组 里面是删除的键 和值。
del dic1['name'] # 根据键 来删除
print(dic1) ------>{'age': 18, 'sex': 'male'}
del dic1['hobby']
print(dic1) ---->KeyError: 'hobby' #没有此键报错
del dic1 #删除整个字典
print(dic1) ----》NameError: name 'dic1' is not defined
dic1.clear() #清空字典
改
update
dic1 = {'age': 18, 'name': 'jin', 'sex': 'male',}
dic = {"name":"jin","age":18,"sex":"male"}
dic2 = {"name":"alex","weight":75}
dic2.update(dic) #把dic所有的键值对,更新到dic2中,有的覆盖,没有的添加
print(dic) ---》{'name': 'jin', 'age': 18, 'sex': 'male'}
print(dic2)---》{'name': 'jin', 'weight': 75, 'age': 18, 'sex': 'male'}
dic1 = {'age': 18, 'name': 'jin', 'sex': 'male',}
查
dic1 = {'age': 18, 'name': 'jin', 'sex': 'male',}
print(dic1.keys()) ---->dict_keys(['name', 'age', 'sex']) #打印所有的键
print(dic1.values())---->dict_values(['jin', 18, 'male']) #打印所有的值
print(dic1.items())--->dict_items([('name', 'jin'), ('age', 18), ('sex', 'male')])
print(type(dic1.keys())) ---> <class 'dict_keys'>
for i in dic1: # 遍历字典,没有标示默认是键
for i in dic1.keys(): # 遍历dic的所有键
for i in dic1.values(): #遍历dic的所有值
for k,v in dic1.items() #
v1 = dic1['name'] 根据键找值
print(v1) ----》jin
v2 = dic1['name1'] # 没有此键会报错
print(v2)-----》KeyError: 'name1'
dic.get(key,None)
v3 = dic1.get('name') # 用get按键找值
print(v3) ----》 jin
v4 = dic.get("name1") #当用get去找不存在的键,会有以给返回值,默认是None
print(v4) ----->None
v5 = dic.get("name1","没有此键")
print(v5) ----->没有此键 # 可以自己拟定
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
a,b = 1,2 print(a,b) #1 2 a = 1 b = 2 a,b = b,a print(a,b) #2 1 a,b = [1,2],[2,3] print(a,b) #[1, 2] [2, 3] a,b = (1,2) print(a,b) #1 2