1 """
2 # 数据类型划分:可变数据类型,不可变数据类型
3 不可变数据类型: 元祖, bool, int, str, 不可更改的又叫可哈希
4 可变数据类型: 列表list dict字典 set集合 不可哈希
5 """
6
7 # 字典的 key(键) 必须是不可变的 就是可哈希的 有元祖tuple, bool,int,str
8 # value:任意数据类型
9 # dict 优点:二分查找去查询
10 # 字典是无序的
11
12 # dic = {
13 # "name":['蜘蛛', "蜘蛛侠"],
14 # "py1":[{"num": 21, "age": 23},
15 # {"num": 20, "age": 44}],
16 # True: 1,
17 # (1,2,3): "pioneer",
18 # 2: "two",
19 # }
20 # print(dic)
21
22
23
24 # dic1 = {"age": 18, "name": "jin", "sex": "male"}
25
26 # 增
27 # dic1 = {"age": 18, "name": "jin", "sex": "male"}
28
29 # dic1["high"] = 185 # 没有键值对,添加 (原字典中没有的则添加)
30 # dic1["age"] = 16 # 如果有键,则覆盖
31
32 # dic1.setdefault("weight")
33 # print(dic1) # {'age': 18, 'name': 'jin', 'sex': 'male', 'weight': None}
34 # 没有键就添加 值则是默认的None
35
36 # dic1.setdefault("weight", "蜘蛛") # 有键值对,不做任何改变, 没有才添加。
37 # dic1.setdefault("weight", 135) # 如果原字典里有键又有值,那么后添加的值则没有用
38 # print(dic1)
39
40
41
42 # 删除
43
44 # dic1 = {"age": 18, "name": "jin", "sex": "male"}
45
46 # pop() 按键去删除
47 # print(dic1.pop("age")) # pop()有返回值 被删除的值, 按键去删除
48 # print(dic1)
49
50
51 # print(dic1.pop("gender")) # 没有的键删除 会报错
52 # print(dic1.pop("gender","没有此键")) # 当你以后要删除某键时,但又不知道
53 # 它到底存不存在,不存在你删除时,
54 # 就会给你报错,这时 你就可以在键后
55 # 面再加一个值,这样就不会报错了
56 # print(dic1)
57
58
59 # dic1 = {"age": 18, "name": "jin", "sex": "male"}
60 # print(dic1.popitem()) # ('sex', 'male') # python 3.6 之前是随机删除(不包括3.6)
61 # 以后就是默认删除最后一个
62 # 有返回值 元祖里面是删除的键值
63 # print(dic1)
64
65
66 # dic1 = {"age": 18, "name": "jin", "sex": "male"}
67 # dic1.clear() # 清空字典
68 # print(dic1)
69
70 # del dic1["name"] # 没有返回值 按键去删除
71 # print(dic1)
72
73 # del dic1 # 删除字典
74 # print(dic1)
75
76
77
78
79 # 改
80 # dic1 = {"age": 18, "name": "jin", "sex": "male"}
81 # dic1["age"] = 13 # 通过键 直接赋值
82 # print(dic1)
83
84 # dic = {"name": "jin", "age": "18", "sex": "male"}
85 # dic2 = {"name": "lizy", "weight": "70"}
86 # dic2.update(dic)
87 # print(dic) # {'name': 'jin', 'age': '18', 'sex': 'male'}
88 # print(dic2) # {'name': 'jin', 'weight': '70', 'age': '18', 'sex': 'male'}
89
90
91
92
93
94 # dic1 = {"age": 18, "name": "jin", "sex": "male"}
95 # 查
96
97 # print(dic1.keys(), type(dic1.keys())) # dict_keys(['age', 'name', 'sex']) <class 'dict_keys'>
98 # # 返回的是列表
99 # print(dic1.values()) # dict_values([18, 'jin', 'male']) # 返回的是列表
100 # print(dic1.items()) # dict_items([('age', 18), ('name', 'jin'), ('sex', 'male')]) # 返回的是元祖 元祖里面是键值
101
102 # dic1 = {"age": 18, "name": "jin", "sex": "male"}
103 # for i in dic1:
104 # print(i) # 用 for 循环遍历字典 打印的是键 age
105 # name
106 # sex
107
108
109
110 # 用一行代码实现啊a,b值的互换
111 # a = 1
112 # b = 2
113 # a, b = b, a
114 # print(a,b)
115
116
117 # a, b = [1, 2]
118 # print(a, b) # 1 2
119
120 # a, b = [1, 2], [2, 3]
121 # print(a,b) # [1, 2] [2, 3]
122
123
124 # dic = {"name": "jin", "age": "18", "sex": "male"}
125 # for i in dic.items():
126 # print(i)
127 # 打印出来如下
128 # ('name', 'jin')
129 # ('age', '18')
130 # ('sex', 'male')
131
132 # 但需求是 不要小括号 不要冒号 做法如下
133 # dic = {"name": "jin", "age": "18", "sex": "male"}
134 # for k, v in dic.items():
135 # print(k, v)
136 # 打印如下
137 # name jin
138 # age 18
139 # sex male
140
141
142 # dic = {"name": "jin", "age": "18", "sex": "male"}
143 # v1 = dic["name"]
144 # print(v1)
145
146
147 # 如果不确定找的键有没有 就用get() 不会报错
148 # v2 = dic["name1"]
149 # print(v2) # 报错了
150
151 #get
152 # print(dic.get("name1", "没有这个键"))
153 # 不会报错 如果没有会返回你写的值 没有这个键
154
155
156
157
158
159
160
161 # dic = {
162 # "name": ["alex", "wusir", "taibai"],
163 # "py12": {
164 # "time": "1314",
165 # "learn_money": 123456,
166 # "addr": "CBD",
167 # },
168 # "age": 23
169 # }
170
171 # 1) 需求 age 改成 33岁
172 # dic["age"] = 66
173 # print(dic)
174
175 # 2) 需求 往"name"中添加一个"蜘蛛"
176 # dic["name"].append("蜘蛛")
177 # print(dic)
178
179 # 3) 需求 把name中的"wusir"变成大写
180 # dic["name"][1] = dic["name"][1].upper() # 这里一定得注意,要赋值
181 # print(dic)
182
183 # 4) 需求 给py12 对应的字典 添加一个键值对 "female": 10
184 # dic["py12"]["female"] = 10
185 # print(dic)
186
187
188
189 # 需求 随便输入字符串,最后测试字符串里面数字的个数
190 info = input(">>>")
191 for i in info:
192 if i.isalpha():
193 info = info.replace(i, " ")
194
195 l = info.split()
196 print(len(l))