python--{字典}-dict
1 # dict字典 2 # 字典是一种组合数据, 没有顺序的组合数据, 数据以键值对形式出现 3 # 创建空字典1 4 d1 = {} 5 print(d1) 6 7 # 创建空字典2 8 d2 = dict() 9 print(d2) 10 11 # 创建有值得字典, 每一组数据都用冒号隔开, 每一对键值对用逗号隔开 12 d = {"one": 1, "two": 2, "three": 3} 13 print(d) 14 15 # 用dict创建内容字典1 16 d = dict({"one": 1, "two": 2, "three": 3}) 17 print(d) 18 19 # 用dict创建内容字典2 20 # 利用关键字参数 21 d = dict(one=1, two=2, three=3) 22 print(d) 23 24 25 d = dict([("one", 1), ("two", 2), ("three", 3)]) 26 print(d) 27 28 # a = 1 29 # b = 2 30 # c = 3 31 # d = 4 32 # list = [a, b, c, d] 33 # mydict = dict.fromkeys(list, "?") 34 # print(mydict) 35 36 # 字典的特征 37 # -字典是序列类型, 但是是无序的序列, 所以没有分片和索引 38 # -字典中的数据每个都有键值对,即KV对 39 # -key:必须是可哈希的值,比如int,string, float, tuple, 但是list, set, dict不行 40 # -value:任何值 41 # 字典常见操作 42 # -访问数据 43 d = {"one": 1, "two": 2, "three": 3} 44 # 注意访问格式 45 # 中括号内饰键值 46 print(d["one"]) 47 48 d["one"] = "eins" 49 print(d) 50 51 # 删除某个操作 52 # 使用del操作 53 del d["one"] 54 print(d) 55 56 # 成员检查in, not in 57 # 成员检查的是key内容 58 d = {"one": 1, "two": 2, "three":3} 59 if 2 in d: 60 print("value") 61 62 if "two" in d: 63 print("key") 64 65 if ("two", 2) in d: 66 print("kv") 67 68 69 d = dict([("one", 1), ("two", 2), ("three", 3)]) 70 # 遍历在python2 和 3 中区别比较大, 代码不通用 71 # 按key来使用for循环 72 for k in d: 73 print(k, "--", d[k]) 74 75 # 同上 76 for k in d.keys(): 77 print(k, "--", d[k]) 78 79 # 只访问字典的值 80 for v in d.values(): 81 print(v) 82 83 # 注意以下特殊用法 84 for k, v in d.items(): 85 print(k, "--", v) 86 87 88 # 字典生成式 89 d = dict([("one", 1), ("two", 2), ("three", 3)]) 90 91 # 的常规字典生成 92 dd = {k: v for k, v in d.items()} 93 print(dd) 94 95 # 加限制条件的常规字典生成 96 dd = {k: v for k, v in d.items() if v % 2 == 0} 97 print(dd) 98 99 100 # 字典的相关函数 101 # 通用函数:len, max, min, dict 102 # *str(字典):返回字典的字符串格式 103 d = dict([("one", 1), ("two", 2), ("three", 3)]) 104 print(d) 105 print(str(d)) 106 107 108 # clear:清空字典 109 # items:返回字典的键值对组成的元组格式 110 d = dict([("one", 1), ("two", 2), ("three", 3)]) 111 # d = {'one': 1, 'two': 2, 'three': 3} 112 print(d) 113 i = d.items() 114 print(type(i)) 115 print(i) 116 117 118 # keys:返回字典的键组成的一个结构 119 k = d.keys() 120 print(type(k)) 121 print(k) 122 123 124 # values:同理, 一个可迭代的结构 125 v = d.values() 126 print(type(v)) 127 print(v) 128 129 130 # get :根据指定键返回相应的值, 好处是, 可以设置默认值 131 d = dict([("one", 1), ("two", 2), ("three", 3)]) 132 print(d) 133 print(d.get("on333")) 134 135 # get 默认值是None, 可以设置 136 print(d.get("on444", 100)) 137 138 # 一以下会报错 139 # print(d["on333"]) 140 141 142 # fromkeys:使用指定的序列作为键, 使用一个值作为字典的所有的键的值 143 l = ["eins", "zwei", "dree"] 144 # 注意fromkeys俩个参数的类型 145 d = dict.fromkeys(l, "hahaha") 146 print(d) 147 148 149 150 ::: 151 {} 152 {} 153 {'one': 1, 'two': 2, 'three': 3} 154 {'one': 1, 'two': 2, 'three': 3} 155 {'one': 1, 'two': 2, 'three': 3} 156 {'one': 1, 'two': 2, 'three': 3} 157 1 158 {'one': 'eins', 'two': 2, 'three': 3} 159 {'two': 2, 'three': 3} 160 key 161 one -- 1 162 two -- 2 163 three -- 3 164 one -- 1 165 two -- 2 166 three -- 3 167 1 168 2 169 3 170 one -- 1 171 two -- 2 172 three -- 3 173 {'one': 1, 'two': 2, 'three': 3} 174 {'two': 2} 175 {'one': 1, 'two': 2, 'three': 3} 176 {'one': 1, 'two': 2, 'three': 3} 177 {'one': 1, 'two': 2, 'three': 3} 178 <class 'dict_items'> 179 dict_items([('one', 1), ('two', 2), ('three', 3)]) 180 <class 'dict_keys'> 181 dict_keys(['one', 'two', 'three']) 182 <class 'dict_values'> 183 dict_values([1, 2, 3]) 184 {'one': 1, 'two': 2, 'three': 3} 185 None 186 100 187 {'eins': 'hahaha', 'zwei': 'hahaha', 'dree': 'hahaha'}