1 """ 2 两个无序的数据类型,字典,集合 3 字典:由键-值对(key:value)组成的序列,由{}进行包裹 4 1.key,键,由不可变的数据来做,字符串,整数(list可变的不能用来作键) 5 2.key 是唯一的 6 3.value 对数据类型无限制 7 8 字典与列表的区别 9 1.字典中的元素是无序的,列表中的元素是有序的,可以通过索引访问到 10 2.字典中存放的是key:value键值对,由键来映射值 11 3.字典,列表都是可变的,支持:增,删,改,查 12 4.支持遍历,for;while可以遍历列表,能够遍历字典吗 13 5.字典比列表查找数据的速度要快,更方便,更占内存 14 15 字典支持的操作: 16 1.使用键来访问值 17 2.使用键来修改值 18 3.使用键来添加键值对;(列表增加:append,extend,insert) 19 20 字典的创建方式: 21 1.{} 22 2.dict() 23 1)如果没有传参,创建空字典 24 2)如果要把iterable对象传过来,iterable数据必须是成对出现的 25 dict_1 = ([('a', 1)]),([('b', 2),['c', 3]]) 26 3)关键字参数,参数一开始已经赋值 27 dict_2 = (zh=100,hai=50) 28 3.字典推导式{x:x*2 for x in (2, 4, 6)} 29 30 成员运算符应用于字典中, in / not in 31 如果一个键在字典中没有,直接访问会报错 32 """ 33 # # 姓名 ,考试分数,相对应进行保存 字典 34 # dict_1 = {"ming": 90, "wang": 100, "li": 88} 35 # dict_1["liu"] = 100 # 添加,圆子店中没有这个键就添上 36 # print(dict_1) 37 # dict_1["li"] = 90 # 修改,元字典中有这个键就修改对应的值 38 # print(dict_1) 39 # # 运行结果: 40 # # {'ming': 90, 'wang': 100, 'li': 88, 'liu': 100} 41 # # {'ming': 90, 'wang': 100, 'li': 90, 'liu': 100} 42 # print(dict_1["li"]) # 访问值,结果为:90 43 # dict_2 = {x: x*2 for x in (2, 4, 6)} 44 # print(dict_2) # {2: 4, 4: 8, 6: 12} 45 # # 使用dict()类型构造函数来创建字典 46 # list_1 = [("a", 1), ("b", 2), ['c', 3]] 47 # dict_3 = dict(list_1) 48 # print(list_1) 49 # print(dict_3) 50 # dict_4 = dict(zhang=50, li=60) 51 # print(dict_4) # {'zhang': 50, 'li': 60} 52 """ 53 成员运算符应用于字典中, in / not in 54 如果一个键在字典中没有,直接访问会报错 55 """ 56 """ 57 字典使用for循环遍历,方法: 58 1.直接遍历键,通过键来访问值 59 2.keys(),访问键视图,字典的内建方法 60 3.values(),访问值视图,字典的内建方法 61 4.items(),访问键值对视图,字典的内建方法 62 5.enumerate()访问键的位置和键,函数 63 """ 64 # list_1 = [("a", 1), ("b", 2), ("c", 3)] 65 # dict_1 = dict(list_1, d=4, e=5) 66 # print(dict_1) 67 # # dict_1 = {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5} 68 # if "a" in dict_1: 69 # print(dict_1["a"]) 70 # else: 71 # print("dict_!中不存在'a'键") 72 # # 结果为: 1 73 # # 字典遍历方法1 74 # for i in dict_1: # key访问到的就是键 75 # print(i, dict_1[i]) # 通过键来获取值 76 # # a 1 77 # # b 2 78 # # c 3 79 # # d 4 80 # # e 5 81 # 82 # # 字典遍历方法2:key访问键视图 83 # for i in dict_1.keys(): 84 # print(i) 85 # # 结果为: 86 # # a 87 # # b 88 # # c 89 # # d 90 # # e 91 # 92 # # 字典遍历方法3:values()访问键视图 93 # for j in dict_1.values(): 94 # print(j) 95 # # 结果为: 96 # # 1 97 # # 2 98 # # 3 99 # # 4 100 # # 5 101 # 102 # # 字典遍历方法4:items()访问键值对视图 103 # for i, j in dict_1.items(): 104 # print(i, j) 105 # # a 1 106 # # b 2 107 # # c 3 108 # # d 4 109 # # e 5 110 # 111 # # 字符遍历方法5:使用enumerate函数 112 # for i, j in enumerate(dict_1): 113 # print(i, j) 114 # # 0 a 115 # # 1 b 116 # # 2 c 117 # # 3 d 118 # # 4 e 119 """ 120 字典的删除,方法: 121 1. del dict_1[key] 关键字del来删除某一个键值对 122 del dict_1 关键字del直接删除字典 123 2. .clear() 清空字典内容 124 3. .pop(key) 删除指定的某一个键值对 125 4. .popitem() 随即删除某一个键值对 126 字典的其他内建方法: 127 1. .get() 获取一个键对应的值,如果该键存在,就获取到其对应的值; 128 如果该键不存在,就返回None 129 如果在参数中指明默认值,则该键不存在就返回默认值 130 求字典中的key:value个数,len() 131 """ 132 # del dict_1["a"] 133 # print(dict_1) # {'b': 2, 'c': 3, 'd': 4, 'e': 5} 134 # dict_1.pop('b') 135 # print(dict_1) # {'c': 3, 'd': 4, 'e': 5} 136 # dict_1.popitem() 137 # print(dict_1) # {'c': 3, 'd': 4},随机删除 138 # del dict_1 # 删除字典 139 # print(dict_1) # NameError: name 'dict_1' is not defined 140 141 # print(dict_1.get("a")) # 1 142 # print(dict_1.get("f")) # None 143 # print(dict_1.get("f", 6)) # 6是默认值 144 # print(dict_1.get("a", 6)) # 1,因为a对应的值是1 145 # print(len(dict_1)) # 5对 146 147 """ 148 有一个字符串,求字符串中的每个单词出现的次数 149 1.字符串进行切片,生成一个列表; 150 2.创建一个空字典 151 3.遍历列表,取出数据,在字典中获取数据对应的值,如果为None,添加数据, 152 并为其赋值为1;如果不为None,给数据对应的值+1 153 4.让用户输入要查找的单词,并返回其在字符串中出现的次数。 154 """ 155 # word = 'ming is very good ! ming is great' 156 # 'ming is cool and man . ming is student , study hard ,' 157 # 'and score very good.' 158 # list_1 = word.split(" ") 159 # # print(list_1) 160 # dict_1 = {} 161 # for i in list_1: 162 # if dict_1.get(i) == None: 163 # dict_1[i] = 1 164 # else: 165 # dict_1[i] += 1 166 # # print(dict_1) 167 # while True: 168 # word_1 = input("请输入一个单词:") 169 # if word_1 in dict_1: 170 # print(dict_1[word_1]) 171 # # break 172 # elif word_1 == "quit": 173 # break 174 # else: 175 # print("没有这个单词,请重新输入")