1 # dict 2 # 数据类型划分: 可变数据类型,不可变数据类型 3 # 不可变数据类型: 元组 bool int str set (又被称为可哈希) 4 # 可变数据类型: list dict (又被称为不可哈希) 5 # dict key 必须是不可变数据类型 可哈希 6 # value 任意数据类型 7 8 # dict优点: 二分查找去查询 9 # 存储大量的关系型数据 10 # 特点:无序的 11 12 # dic = 13 # 'name':['peng','fei'], 14 # 'py' :[{'num':71,'avg_age':18},{'num':71,'avg_age':18},{'num':71,'avg_age':18}, 15 # {'num':71,'avg_age':18}, 16 # ], 17 # True : 1, 18 # (1,2,3):'wuyiyi', 19 # 2:'pengfei' 20 # 21 # 22 # 23 # }, 24 # 25 # print(dic) 26 27 # dic1 = {'age':18,'name':'jin','sex':'male','k':'v'} 28 # 增 29 # dic1['height'] = 185 #没有这个键值对,添加 30 # print(dic1) #{'age': 18, 'name': 'jin', 'sex': 'male', 'k': 'v', 'height': 185} 31 # dic1['age'] = 16 #如果有键,则值覆盖 32 # print(dic1) #{'age': 16, 'name': 'jin', 'sex': 'male', 'k': 'v'} 33 34 # dic1.setdefault('weight') #有键值对,不做任何改变,没有才添加 35 # print(dic1) #{'age': 18, 'name': 'jin', 'sex': 'male', 'k': 'v', 'weight': None} 36 # dic1.setdefault('weight',150) 37 # print(dic1) #{'age': 18, 'name': 'jin', 'sex': 'male', 'k': 'v', 'weight': 150} 38 # dic1.setdefault('name',17) 39 # print(dic1) #{'age': 18, 'name': 'jin', 'sex': 'male', 'k': 'v'} 40 41 # 删 42 # print(dic1.pop('age')) # 18 有返回值,按 '键' 去删除 43 # # {'name': 'jin', 'sex': 'male', 'k': 'v'} 44 # print(dic1.pop('二哥',None)) # None 可设置返回值。若是没有上面的键,则会显示返回值 45 46 # print(dic1.popitem()) # 3.6及以上版本是末尾删除,有返回值,元组里面是删除的键值 47 # # 3.6以下版本是随机删除 有返回值,元组里面是删除的键值 48 49 # del dic1['name'] 50 # print(dic1) #{'age': 18, 'sex': 'male', 'k': 'v'} 51 # del dic1 52 # print(dic1) 53 54 # dic1.clear() #清空字典 55 # print(dic1) 56 57 58 # 改 update 59 # dic1['age'] = 16 60 61 # dic = {'name':'jin','age':18,'sex':'male'} 62 # dic2 = {'name':'alex','weight':75} 63 # dic2.update(dic) #把一个字典当中的键值对覆盖添加到一个字典当中, 64 # # 原字典没有变化,只有更新的dic2才会变化 65 # 66 # print(dic) 67 # print(dic2) 68 69 dic1 = {'age':18,'name':'jin','sex':'male','k':'v'} 70 # 查 71 # print(dic1.keys()) #dict_keys(['age', 'name', 'sex', 'k']) 72 # print(dic1.values()) #dict_values([18, 'jin', 'male', 'v']) 73 # print(dic1.items()) #dict_items([('age', 18), ('name', 'jin'), ('sex', 'male'), ('k', 'v')]) 74 75 # for循环查找 默认查的是键 76 # for i in dic1: 77 # print(i) 78 # for i in dic1.values(): 79 # print(i) 80 81 82 # a,b =1,2 83 # print(a,b) 84 85 # 面试题:一行代码使a,b的值互换 86 # a = 1 87 # b = 2 88 # a,b=b,a 89 # print(a,b) # 2 1 90 91 # a,b =[1,2],[2,3] 92 # a,b =(1,2) 93 # print(a,b) 94 # for i in dic1.items(): 95 # print(i) # ('age', 18) 96 # # ('name', 'jin') 97 # # ('sex', 'male') 98 # # ('k', 'v') 99 # 若是想直接打印出key,value: 100 # for k,v in dic1.items(): #for循环中i 与 k,v接收的值不同 101 # #i是接收的元组,里面对应的是键值,k,v是分别接收 键,值 102 # print(k,v) # age 18 103 # # name jing 104 # # sex malek 105 # # k v 106 107 # v1 = dic1['name'] 108 # print(v1) #可以打印出对应的值:jin 109 # v2 = dic1['name1'] #若在字典中没有此键。 会报错 110 # print(v2) 111 112 # print(dic1.get('name1','sss')) #若字典中没有此键,默认返回值为none.可以修改返回值 113 # print(dic1.get())