帝国做网站是选择静态还是伪静态,高端网站创建,网站变灰色,高端的网站建设公司基础学习第四弹#xff0c;常用对象#xff1a;元组、字典和集合一、元组1.1 元组的应用场景思考#xff1a;如果想要存储多个数据#xff0c;但是这些数据是不能修改的数据#xff0c;怎么做#xff1f;答#xff1a;列表#xff1f;列表可以一次性存储多个数据#…基础学习第四弹常用对象元组、字典和集合一、元组1.1 元组的应用场景思考如果想要存储多个数据但是这些数据是不能修改的数据怎么做答列表列表可以一次性存储多个数据但是列表中的数据允许更改。num_list [10, 20, 30]num_list[0] 100而一个元组可以存储多个数据元组内的数据是不能修改的。元组相当于是写死的列表1.2 定义元组元组特点定义元组使用小括号且逗号隔开各个数据数据可以是不同的数据类型。# 多个数据元组t1 (10, 20, 30)# 单个数据元组t2 (10,)注意如果定义的元组只有一个数据后面也要添加逗号否则数据类型为唯一的这个数据的数据类型t2 (10,)print(type(t2)) # tuplet3 (20)print(type(t3)) # intt4 (hello)print(type(t4)) # str1.3 元组的常见操作元组数据不支持修改只支持查找具体如下按下标查找数据tuple1 (aa, bb, cc, bb)print(tuple1[0]) # aaindex()查找某个数据如果数据存在返回对应的下标否则报错语法和列表、字符串的index方法相同。tuple1 (aa, bb, cc, bb)print(tuple1.index(aa)) # 0count()统计某个数据在当前元组出现的次数。tuple1 (aa, bb, cc, bb)print(tuple1.count(bb)) # 2len()统计元组中数据的个数。tuple1 (aa, bb, cc, bb)print(len(tuple1)) # 4注意元组内的直接数据如果修改则立即报错tuple1 (aa, bb, cc, bb)tuple1[0] aaa但是如果元组里面有列表修改列表里面的数据则是支持的故自觉很重要。tuple2 (10, 20, [aa, bb, cc], 50, 30)print(tuple2[2]) # 访问到列表# 结果(10, 20, [aaaaa, bb, cc], 50, 30)tuple2[2][0] aaaaaprint(tuple2)二、字典2.1 字典的应用场景思考1 如果有多个数据例如Tom, 男, 20如何快速存储答列表list1 [Tom, 男, 20]思考2如何查找到数据Tom答查找到下标为0的数据即可。list1[0]思考3如果将来数据顺序发生变化如下所示还能用list1[0]访问到数据Tom吗。list1 [男, 20, Tom]答不能数据Tom此时下标为2。思考4数据顺序发生变化每个数据的下标也会随之变化如何保证数据顺序变化前后能使用同一的标准查找数据呢答字典字典里面的数据是以键值对形式出现字典数据和数据顺序没有关系即字典不支持下标后期无论数据如何变化只需要按照对应的键的名字查找数据即可。2.2 创建字典的语法字典特点符号为大括号数据为键值对形式出现各个键值对之间用逗号隔开# 有数据字典dict1 {name: Tom, age: 20, gender: 男}# 空字典dict2 {}dict3 dict()注意一般称冒号前面的为键(key)简称k冒号后面的为值(value)简称v。2.3 增写法字典序列[key] 值注意如果key存在则修改这个key对应的值如果key不存在则新增此键值对。dict1 {name: Tom, age: 20, gender: 男}dict1[name] Rose# 结果{name: Rose, age: 20, gender: 男}print(dict1)dict1[id] 110# {name: Rose, age: 20, gender: 男, id: 110}print(dict1)注意字典为可变类型。2.4 删del()删除字典或删除字典中指定键值对。dict1 {name: Tom, age: 20, gender: 男}del dict1[gender]# 结果{name: Tom, age: 20}print(dict1)clear()清空字典dict1 {name: Tom, age: 20, gender: 男}dict1.clear()print(dict1) # {}2.5 改写法字典序列[key] 值注意如果key存在则修改这个key对应的值 如果key不存在则新增此键值对。2.6 查key值查找dict1 {name: Tom, age: 20, gender: 男}print(dict1[name]) # Tomprint(dict1[id]) # 报错如果当前查找的key存在则返回对应的值否则则报错。get()语法字典序列.get(key, 默认值)注意如果当前查找的key不存在则返回第二个参数(默认值)如果省略第二个参数则返回None。快速体验dict1 {name: Tom, age: 20, gender: 男}print(dict1.get(name)) # Tomprint(dict1.get(id, 110)) # 110print(dict1.get(id)) # Nonekeys()返回一个字典所有的键dict1 {name: Tom, age: 20, gender: 男}print(dict1.keys())# dict_keys([name, age, gender])values()返回一个字典所有的值dict1 {name: Tom, age: 20, gender: 男}print(dict1.values()) # dict_values([Tom, 20, 男])items()以列表返回可遍历的(键, 值) 元组数组dict1 {name: Tom, age: 20, gender: 男}print(dict1.items()) # dict_items([(name, Tom), (age, 20), (gender, 男)])三、字典的循环遍历3.1 遍历字典的keydict1 {name: Tom, age: 20, gender: 男}for key in dict1.keys():print(key)输出结果nameagegender3.2 遍历字典的valuedict1 {name: Tom, age: 20, gender: 男}for value in dict1.values():print(value)输出结果Tom20男3.3 遍历字典的元素返回对象是元组dict1 {name: Tom, age: 20, gender: 男}for item in dict1.items():print(item)输出结果(name, Tom)(age, 20)(gender, 男)3.4 遍历字典的键值对dict1 {name: Tom, age: 20, gender: 男}for key, value in dict1.items():print(f{key} {value})输出结果name Tomage 20gender 男四、集合4.1 创建集合创建集合使用{}或set() 但是如果要创建空集合只能使用set()因为{}用来创建空字典。s1 {10, 20, 30, 40, 50}print(s1)# 无序的s2 {10, 30, 20, 10, 30, 40, 30, 50}print(s2)# 不重复的s3 set(abcdefg)print(s3)s4 set()print(type(s4)) # sets5 {}print(type(s5)) # dict特点集合可以去掉重复数据集合数据是无序的故不支持下标4.2 增加数据add()s1 {10, 20}s1.add(100)s1.add(10)print(s1) # {100, 10, 20}因为集合有去重功能所以当向集合内追加的数据是当前集合已有数据的话则不进行任何操作。update(), 追加的数据是序列。s1 {10, 20}# s1.update(100) # 报错s1.update([100, 200])s1.update(abc)print(s1)# {100, c, 200, 10, b, 20, a}4.3 删除数据remove()删除集合中的指定数据如果数据不存在则报错。s1 {10, 20}s1.remove(10)print(s1)s1.remove(10) # 报错print(s1)discard()删除集合中的指定数据如果数据不存在也不会报错。s1 {10, 20}s1.discard(10)print(s1)s1.discard(10)print(s1)pop()随机删除集合中的某个数据并返回这个数据。s1 {10, 20, 30, 40, 50}del_num s1.pop()print(del_num)print(s1)4.4 查找数据in判断数据在集合序列not in判断数据不在集合序列s1 {10, 20, 30, 40, 50}print(10 in s1)print(10 not in s1)# True False