专题七 Python元组、集合(讲义)-《Python程序设计》职教高考备考讲练测(安徽省)

2025-04-01
| 11页
| 110人阅读
| 0人下载
精品

资源信息

学段 中职
学科 职教专业课
课程 程序设计基础
教材版本 -
年级 高一
章节 -
类型 教案-讲义
知识点 序列,字典与集合
使用场景 中职复习
学年 2025-2026
地区(省份) 安徽省
地区(市) -
地区(区县) -
文件格式 DOCX
文件大小 239 KB
发布时间 2025-04-01
更新时间 2025-04-01
作者 PythonStudy
品牌系列 上好课·一轮讲练测
审核时间 2025-04-01
下载链接 https://m.zxxk.com/soft/51368203.html
价格 3.00储值(1储值=1元)
来源 学科网

内容正文:

专题七 Python 元组、集合 [考纲要求] 1.了解元组的特性 2.掌握元组的索引和切片操作 3.了解元组函数 4.掌握集合的创建 5.了解集合的特性 6.掌握集合的运算 7.掌握集合的函数 [课时安排] 2课时 [知识梳理] 元组 元组定义 定义:元组的元素用逗号隔开,放在圆括号内。元组是不可变对象,元组一经创建其元素便不能被修改。 如:(1,2,3) 当元组中只包含一个元素时,需要在元素后面添加逗号,以防运算时被当作括号。 >>> a=(1,2,3,4) >>> type(a) <class 'tuple'> >>> b=(1) >>> type(b) <class 'int'> >>> c=(1,) >>> type(c) <class 'tuple'> 元组和列表的比较: 1.元组是不可变的数据类型而列表是可变的数据类型 2.都支持索引和切片的操作 3.元组的元素不可修改、删除 创建元组 # 方法1 tup1 = () # 方法2 tup2 = tuple() 其中的tuple( )函数就是元组的专用函数。可以通过调用tuple( )函数来创建元组,通过调用tuple( )函数还可以将字符串和列表、集合、字典转为元组。 str1="hello" print(tuple(str1)) # (‘h’,’e’,’l’,’l’,’o’) lst=[1,2,3,4] print(tuple(lst)) # (1,2,3,4) 元组封装与序列拆封 1.元组封装 元组封装是指以逗号分隔的多个值自动封装到一个元组中,例如: >>> a=1,2,3 >>> a (1, 2, 3) >>> a=1, >>> a (1,) 2.序列拆封 序列拆封是元组封装的逆运算,可以用来将一个封装起来的元组对象自动拆分成若干个基本数据。例如: >>> x,y,z=(1,2,3) >>> x 1 >>> y 2 >>> z 3 上面的序列拆分操作要求赋值运算符左边的变量数目与右边序列中包含的数据数目相同,否则会出现ValueError错误! 封装操作只能用于元组对象,而拆分操作不仅可以用于元组对象,还可以用于其他序列对象。 元组连接和重复 1.元组连接 语法结构:元组1+元组2+… 示例: >>> tup1=(1,2,3) >>> tup2=(4,5,6) >>> tup1+tup2 (1, 2, 3, 4, 5, 6) 2.元组重复 语法结构:元组*正整数/正整数*元组 示例: >>> tup1=(1,2,3) >>> tup1*2 (1, 2, 3, 1, 2, 3) >>> 2*tup1 (1, 2, 3, 1, 2, 3) 常考类题: tup1=(1,2) tup2=(3,4,5) print(len(tup1*2+tup2*3)) # 13 索引取值和切片赋值、元组比较 元组是有序序列,因此索引取值和切片赋值的方法和列表的操作一模一样。 元组比较,也是和列表的比较一样的 使用成员运算符in来判断某个值是否存在于元组中 总结:元组和列表的相似度很高,唯一不同的是元组不可变,列表是可变的数据类型。 元组是不可变对象,是不允许修改元组中的元素值,如果试图通过赋值语句修改元组中的元素,将会出现TypeError的错误,同样,是不允许删除元组中的元素的。但是可以使用del语句来删除整个元组。 >>> tup1=(1,2,3) >>> tup1[1]=20 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'tuple' object does not support item assignment >>> del tup1[1] Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'tuple' object doesn't support item deletion >>> del tup1 >>> tup1 Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'tup1' is not defined 元组函数 在Python中,元组(tuple)与列表类似,它们同属于有序的序列类型。不同的是元组是不可变对象,元组一经创建,其元素便不能被修改。 tup.count(x) 使用该方法可以返回元素x在元组中出现的次数。例如: >>> tup1=(1,2,3,4,5,6,1,2) >>> tup1.count(1) 2 >>> tup1.count(7) 0 tup.index(x[,start,end]) 使用该方法返回元素x在元组中第一次出现的索引值,如果元素x未包含在元组中,则会出现ValueError的错误。例如: >>> tup1=(1,2,3,4,5,6,1,2) >>> tup1.index(1) 0 >>> tup1.index(7) Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: tuple.index(x): x not in tuple 集合 集合的定义 集合是一些不重复的无序组合,集合分为可变集合和不可变集合。集合不记录元素的位置,因为对集合不能进行索引和切片等操作。注:我们现在学习的是可变集合 集合的特点:确定性、互异性、无序性 创建集合 创建空集合,使用集合的内置函数set()来创建 set1 = set() print(type(set1)) # <class 'set'> 为什么不能使用{ }来创建,我们来看看代码: set2 = {} print(type(set2)) # <class 'dict'> 从上面能看出这是字典的数据类型,并不是集合。上面的方法是创建空的字典 使用set()函数将其他类型的数据转为集合。但是注意,其他类型的数据转为集合需要去重。 来看看下面的示例: >>> st="hello" >>> set(st) {'o', 'e', 'l', 'h'} >>> tup=(1,2,3,1,2) >>> set(tup) {1, 2, 3} >>> st="" >>> set(st) set() 对列表的元素去重 >>> lst=[1,2,3,4,5,2,3,5] >>> nlst=list(set(lst)) >>> nlst [1, 2, 3, 4, 5] 对字符串的字符去重 >>> st="hello" >>> "".join(set(st)) 'oelh' 集合的特征 集合中的元素可以是不同的数据类型,但是不能是可变的数据类型(列表,字典)因为集合的三大特征(确定性、互异性、无序性)中的确定性决定的。 确定性:指的是集合中的元素是不可变的数据类型,且不可变的数据内部也不能包含可变的数据类型。 >>> set1={(1,2),"hello",1,3,88} >>> set1 {(1, 2), 1, 3, 'hello', 88} >>> set1={(1,[2,3]),"hello",1,3,88} Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: unhashable type: 'list' 互异性:指的是集合中的元素不能重复,即便在创建集合的时候里面有重复的元素,集合会自动删除重复的元素。因此集合可以用来剔除序列中重复的元素。但是可能会打乱序列中以前的数据顺序。 >>> set1={1,2,3,4,5,1,2} >>> set1 {1, 2, 3, 4, 5} >>> lst=[1,2,3,4,5,6,1,2,7] >>> nlst=list(set(lst)) >>> nlst [1, 2, 3, 4, 5, 6, 7] 无序性:指的是集合中的元素不记录元素的位置,因此不能使用索引和切片 >>> set1[1] Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'set' object does not support indexing 集合的操作 1.set1.add(x) 该函数用于在集合set1中添加元素x,如: >>> set1={'a','b','c'} >>> set1.add('d') >>> set1 {'a', 'c', 'd', 'b'} 2.set1.remove(x) 该函数用于从集合set1中删除元素x,若x不存在于集合set1中,则会出现KeyError的错误。例如: >>> set1={1,2,3,4,5} >>> set1.remove(2) >>> set1 {1, 3, 4, 5} >>> set1.remove(6) Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyError: 6 3.set1.clear( )该函数用于删除集合set1中的所有元素。例如: >>> set1={1,2,3,4} >>> set1.clear() >>> set1 set() 集合的运算 交集 两个集合共有的元素组成的集合,使用运算符”&”计算两个集合的交集 >>> set1={1,2,3,4,5} >>> set2={3,4,5,6,7} >>> set1&set2 {3, 4, 5} 并集 两个集合所有元素的集合,使用运算符”|”计算两个集合的并集 >>> set1={1,2,3,4,5} >>> set2={3,4,5,6,7} >>> set1|set2 {1,2,3, 4, 5,6,7} 差集 A-B表示属于集合A但不属于集合B的元素所组成的集合称为集合A和集合B的差集 B-A表示属于集合B但不属于集合A的元素所组成的集合称为集合B和集合A的差集 >>> set1={1,2,3,4,5} >>> set2={3,4,5,6,7} >>> set1-set2 {1, 2} >>> set2-set1 {6, 7} 对称差集 对于集合A和B,由所有属于集合A但不属于集合B,属于集合B但不属于集合A的元素所组成的集合称为集合A和集合B的对称差集,可以使用运算符”^”计算两个集合的对称差集 >>> set1={1,2,3,4,5} >>> set2={3,4,5,6,7} >>> set1^set2 {1, 2, 6, 7} [限时练习] 1. a=9,;print(a);print(a)的运行结果__________ 【答案】(9,) 【解析】将9,封装成元组 2.下面代码的运行结果__________ a,b,c=(2,3,4) print(a**b//4) 【答案】2 【解析】a,b,c的值分别为2,3,4 a**b的值为8 8//4的取整值为2 3.下面代码的运行结果__________ st="hello" print(tuple(st)) 【答案】('h', 'e', 'l', 'l', 'o') 【解析】将字符串转为元组 4.下面代码的运行结果__________ st="pyth" lst=['o','n'] print(tuple(st)+tuple(lst)) 【答案】('p', 'y', 't', 'h', 'o', 'n') 【解析】将st和lst转为元组再进行拼接 5.下面代码的运行结果__________ tup=(1,2,3,4,5,6,7,8) print(tup[::3]) 【答案】(1, 4, 7) 【解析】步长为3 且从元组的开始切片到结束 6.下面代码的运行结果__________ tup=(1,2,3,4,5,6,7,8) print(tup[:1:-2]) 【答案】(8, 6, 4) 【解析】步长-2表示从右往左,从右侧切片到索引1结束。因此结果为(8, 6, 4) 7.下面代码的运行结果__________ tup1=(1,2,3) tup2=(4,5) print(len(tup1*3+tup2*2)) 【答案】13 【解析】tup1*3的长度为9 tup2*2的长度为4 最后长度为13 8.下面代码的运行结果__________ print((2,3,4)>(2,3,3,4)) 【答案】True 【解析】左侧元组的索引2位置的元素大于右侧元组索引2位置的元素,因此返回True 9.下面代码的运行结果__________ st="hello" print(len(set(st))) 【答案】4 【解析】set()函数将字符串st里面的重复字符去重,set(st)的值为{'e', 'l', 'h', 'o'}因此长度为4 10.下面代码的运行结果__________ set1={1,2,3,4} set1.add(3) print(set1) 【答案】{1, 2, 3, 4} 【解析】由于3已经在集合里面了,因此添加进去也会被去重。最后的结果为{1, 2, 3, 4} 11.下面代码的运行结果__________ set1={1,2,3,1} set1.remove(1) print(set1) 【答案】{2, 3} 【解析】set1先把重复的元素去重,再删除元素1。最后的结果为{2, 3} 12.下面代码的运行结果__________ st1="hello" st2='heha' print(set(st1)|set(st2)) 【答案】{'a', 'e', 'l', 'o', 'h'} 【解析】set(st1)的值为{'l', 'e', 'h', 'o'} set(st2)的值为{'e', 'h', 'a'}两个集合的并集为{'a', 'e', 'l', 'o', 'h'} [归纳小结] 学科网(北京)股份有限公司 $$

资源预览图

专题七 Python元组、集合(讲义)-《Python程序设计》职教高考备考讲练测(安徽省)
1
专题七 Python元组、集合(讲义)-《Python程序设计》职教高考备考讲练测(安徽省)
2
专题七 Python元组、集合(讲义)-《Python程序设计》职教高考备考讲练测(安徽省)
3
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。