# dict 讲解及增删改查等操作 # 数据类型划分,可变数据类型,不可变数据类型 # 不可变数据类型:元祖 bool int str (又叫 可哈希) # 可变数据类型: list(列表)、dict(字典)、set(集合)(又叫 不可哈希 ) # 字典dict key 必须是不可变数据类型,可哈希 # value 任意数据类型 # dict 优点:二分查找去查询 # 储存大量关系型数据 # 特点:无序的(Python3.5之前是,3.6以后是有序的) # dic = { # 'name':['风花雪月','百炼成钢'], # 'py1':[{'num':71,'avg_age':18,}], # True:1, # (1,2,3):'m', # 2:'凤凰', # } # print(dic) # dic1 = {'age':18,'name':'elsa','sex':'male',} # 增 # dic1['high'] = 185 # 添加新的键值对 # dic1['age'] = 16 # 修改原有键值对 覆盖原有 # print(dic1) # {'age': 16, 'name': 'elsa', 'sex': 'male', 'high': 185} # dic1.setdefault('weight',100) # 如果没有该键值就添加 # print(dic1) # {'age': 18, 'name': 'elsa', 'sex': 'male', 'weight': 100} # dic1.setdefault('name','alex') # 如果有该键值就不变了(setdefault与dic1['age'] = 16区别在于dic1['age'] = 16直接覆盖原键值,setdefault 有键值不做任何改变 没有才增加) # print(dic1) # {'age': 18, 'name': 'elsa', 'sex': 'male'} # 删 pop.() # print(dic1.pop('age')) # 有返回值 按键来删除 # print(dic1) # 18 # 这是返回的键值 # {'name': 'elsa', 'sex': 'male'} # 这是结果 # print(dic1.pop('呃呃呃',None) ) # 可设置返回值 # print(dic1) # None # 这是返回的提示 表示没有此键值 # {'age': 18, 'name': 'elsa', 'sex': 'male'} # 这是结果 # dic1.clear() # 清空字典 # 改 update # dic1['age'] = 16 # 修改原有键值对 覆盖原有 # dic1 = {'age':28,'name':'elsa','sex':'male',} # dic2 = {'age':18, 'weight': 100,} # dic2.update(dic1) # print(dic1) # {'age': 28, 'name': 'elsa', 'sex': 'male'} # print(dic2) # {'age': 28, 'weight': 100, 'name': 'elsa', 'sex': 'male'} # 将dic1更新覆盖到dic2中,原dic1不改变 # 查 dic1 = {'age':28,'name':'elsa','sex':'male',} # print(dic1.keys()) # dict_keys(['age', 'name', 'sex']) 键 # print(dic1.values()) # dict_values([28, 'elsa', 'male']) 值 # print(dic1.items()) # dict_items([('age', 28), ('name', 'elsa'), ('sex', 'male')]) 元祖 元祖里是键值 # for i in dic1: # print(i) # 默认打印键 age name sex # for i in dic1.values(): # print(i) # 打印 值 28 elsa male # for i in dic1.items(): # print(i) # 打印 键值 ('age', 28) ('name', 'elsa') ('sex', 'male') # a = 1 # b = 2 # a,b = b,a # print(a,b) # a b a=2 b=1 数值互换 # for k,v in dic1.items(): # print(k,v) # 打印 键值 # age 28 # name elsa # sex male # for k,v in dic1.items(): # for i in k,v: # print(i) # 打印 键值 # age # 28 # name # elsa # sex # male # print(dic1.get('name','没有这个键')) # 字典中如果有返回对应的值 如果没有相关的键 默认返回 None 也可以设置返回值 且不会报错