序列
知识点
序列的含义:有下标索引,元素有序,可重复的一类数据容器
序列的分类: 列表 元组 字符串
序列的特点:有下标索引,有序,可以重复,支持while循环,支持切片操作(最大的特点)
切片的格式: 序列[起始索引:结束索引:步长]
切片解释:
开始索引(可以留空,默认从头开始)
结束索引(可以留空,默认到尾结束)
步长(默认为1,正数代表从左至右,负数代表从右至左)
列表切片示例:
#元组及字符串的切片操作相同
# 列表的切片操作 # 定义非空列表 my_list = ('a', 'b', 'c', 'd', 'e') # 打印大列表 print(my_list) print(my_list[:]) print(my_list[::]) # 截取abc print(my_list[0:3:1]) print(my_list[0:3:]) print(my_list[:3:]) print(my_list[:3]) # 截取edcb print(my_list[:-5:-1]) print(my_list[-1:-5:-1]) print(my_list[4:0:-1]) # 翻转列表 print(my_list[::-1]) print(my_list[4::-1]) # 截取bcd print(my_list[1:4]) print(my_list[1:4:]) print(my_list[1:4:1])
综合练习:
# 定义列表存储多个手机号 phone_list = ['15812324567', '13823124567', '15845612327', '13812321212', '15812321232'] # 把中间4位隐藏 # 方式1 for phone in phone_list: # print(phone) new_phone = phone[:3] + '****' + phone[-4:] print(new_phone) print('---------------------------------') # 方式2 for phone in phone_list: new_phone = phone.replace(phone[3:7], "****", 1) print(new_phone)
集合
集合的定义
知识点
定义空集合:集合名=set() 注意:不能使用空的{},它代表的是字典
定义非空集合:集合名={元素1,元素2,元素3,...} 注意:集合中不要嵌套可变类型
示例
# 定义空集合 set1 = set() print(set1) # 空集合不能是{},它代表的是字典 test = {} print(test, type(test)) # 定义非空集合 my_set = {'a', 'b', 'c', 'd', 'e'} print(my_set, type(my_set)) my_set1 = {('a', 'b', 'c'), ('d', 'e')} print(my_set1, type(my_set1)) my_set2 = {('a', 'b', 'c'), ('a', 'b', 'c')} print(my_set2, type(my_set2))
集合的增删改查
知识点
增:添加指定的元素 集合名.add(元素)
删:删除指定的元素 集合名.remove(元素)
删除随机元素 集合名.pop()
清空集合所有元素 集合名.clear()
改:
修改集合a的内容为它和集合b的差集:集合a.difference_update(集合b)
修改集合a的内容为它和集合b的并集:集合a.update(集合b)
查:查看集合中元素个数:len(集合名)
示例
# 定义空列表 name_set = set() # 1.集合的添加 name_set.add('张三') name_set.add('李四') name_set.add('张三') name_set.add('王五') name_set.add('赵六') print(name_set) # 2.集合的删除功能 name_set.remove('赵六') print(name_set) name_set.pop() print(name_set) name_set.clear() print(name_set) # 3.集合的修改功能 s1 = {1, 2, 3} s2 = {1, 5, 6} # 修改s1,保留s2的差集 s1.difference_update(s2) print(s1) print(s2) # 修改s1,保留s2的并集 s1.update(s2) print(s1) print(s2) # 4.集合的查询 print(len(s1)) print(len(s2))
集合的遍历
知识点:
集合是不支持下标索引,不支持重复元素,所以集合是无序的,也不支持while循环 因为for循环又叫遍历循环,最大特点就是遍历容器,所以集合容器支持for循环
示例:
# 定义集合 name_set = {'张三', '李四', '张三', '王五'} # for循环遍历集合 for name in name_set: print(name)
集合的特点
可以存储多个元素
支持for循环
不能存储可变类型
不支持下标索引(无序)
不支持while循环
不支持重复
支持修改
字典
字典的定义
知识点
定义非空字典: 字典名={} 或者 字典名=dict()
定义非空字典: 字典名={k1:v1,k2:v2,k3:v3,...} 注意:字典每个元素都是一个键值对
示例
#定义空字典 d1={} print(d1,type(d1)) d2=dict() print(d2,type(d2)) #定义非空字典 d3={'郭靖':'黄蓉','杨过':'小龙女','胡斐':'苗若兰',} print(d3,type(d3)) #字典的嵌套 d4={ '郭靖': {'语文':88,'数学':89,'英语':99,'综合':94 }, '杨过':{'语文':85,'数学':92,'英语':87,'综合':91 }, '胡斐':{'语文':90,'数学':89,'英语':80,'综合':85 } } print(d4,type(d4)) print(d4['杨过']) print(d4['杨过']['综合'])
字典根据key找值
知识点
根据key找值方式1: value=字典名[key]
根据key找值方式2: value=字典名.get(key)
示例
# 定义非空字典 d3 = {'郭靖': '黄蓉', '杨过': '小龙女', '胡斐': '苗若兰', } print(d3, type(d3)) # 字典的嵌套 d4 = { '张三': {'语文': 88, '数学': 89, '英语': 99, '综合': 94}, '李四': {'语文': 85, '数学': 92, '英语': 87, '综合': 91}, '王五': {'语文': 90, '数学': 89, '英语': 80, '综合': 85} } # 输出杨过的另一半 print(f"杨过的另一半是:{d3['杨过']}") print(f"杨过的另一半是:{d3.get('杨过')}") # 张三的所有考试成绩 print(f"张三的所有考试成绩为:{d4['张三']}") print(f"张三的所有考试成绩为:{d4.get('张三')}") # 李四的数学成绩 print(f"李四的数学成绩为:{d4['李四']['数学']}") print(f"李四的数学成绩为:{d4.get('李四').get('数学')}")
字典的增删改查
知识点
增
添加新元素: 字典名[new_key]=value
删
删除元素:字典名.pop(key)
清空元素:字典名.clear
改
添加新元素: 字典名[old_key]=value
查
根据key找值方式1: value=字典名[key]
根据key找值方式2: value=字典名.get(key)
查看元素的个数:len(字典名)
查询所有的健:字典名.keys()
查询所有的值:字典名.values()
查询所有的键值对:字典名.items()
示例
# 定义空字典 score_dict = {} print(score_dict) # 字典的增加 score_dict['王五'] = 90 score_dict['李四'] = 80 print(score_dict) # 字典的删除 score_dict.pop('李四') print(score_dict) # 字典的更改 score_dict['王五'] = 100 score_dict['李四'] = 95 score_dict['钱九'] = 95 print(score_dict) # 字典的查询 print(score_dict['王五']) print(len(score_dict)) print(score_dict.keys()) print(score_dict.values()) print(score_dict.items())
修改和添加注意事项
""" key不能重复,重复不报错,修改对应的值 字典的添加和修改是同一个格式:字典名[key]=value key已经存在,修改对应的值 key不存在,添加对应的元素 """ # key重复的情况,报黄警告 score_dict = {'张三': 88, '李四': 85, '张三': 89} print(score_dict) # {'张三': 89, '李四': 85} # 演示修改元素 score_dict['李四'] = 95 print(score_dict) # {'张三': 89, '李四': 95} # 演示添加元素 score_dict['王五'] = 75 print(score_dict) # {'张三': 89, '李四': 95, '王五': 75}
字典的遍历
知识点
字典不支持下标索引,不支持重复元素,所以也不支持while循环
for循环又叫遍历循环,最大特点就是遍历所有容器,所以字典容器支持for循环
示例
""" 字典的核心就是key,主要操作的就是key 字典key不支持重复,字典不支持下标索引 也不支持while循环 """ # 定义非空字典 name_dict = { '张三': {'语文': 88, '数学': 89, '英语': 99, '综合': 94}, '李四': {'语文': 85, '数学': 92, '英语': 87, '综合': 91}, '王五': {'语文': 90, '数学': 89, '英语': 80, '综合': 85} } # 默认遍历获取的就是key,再根据key找值 for name in name_dict: score = name_dict[name] print(name, score) print('-------------------------------------------') # 先获取所有的key,再根据key找值 for name in name_dict.keys(): score = name_dict[name] print(name, score) print('-----------------------------------') # 方式3 先获取所有的键值对items(默认放到元组中),然后再根据索引找 for item in name_dict.items(): print(item[0], item[1])
字典的特点
字典特点总结
可以存储多个元素
支持for循环
key不支持可变类型(value可以是任意类型)
不支持下标索引
不支持while循环
key不支持重复(value支持重复)
支持修改