书签 分享 收藏 举报 版权申诉 / 98
上传文档赚钱

类型《Python程序设计》教学课件—06组合数据类型.pptx

  • 上传人(卖家):晟晟文业
  • 文档编号:4768001
  • 上传时间:2023-01-08
  • 格式:PPTX
  • 页数:98
  • 大小:1.21MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《《Python程序设计》教学课件—06组合数据类型.pptx》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    Python程序设计 Python 程序设计 教学 课件 06 组合 数据类型
    资源描述:

    1、6.1.1 创建列表对象和列表变量1.创建列表对象(1)使用中括号创建列表对象创建列表对象的格式如下:元素1,元素2,元素3,.,元素n列表中的每个元素都有一个位置索引,第一个索引是0,第二个索引是1,以此类推。例如,下面的列表同时包含整数、浮点数、字符串和列表这4种数据类型。100,3.5,Python语言,2,3,4,8(2)使用list类的构造函数创建列表对象语法格式如下:list(可迭代对象)其中,参数“可迭代对象”为可选项,用于指定一个可迭代(Iterable)对象,可以是列表、元组、可变集合、字典等。【例6-1】用list()构造函数创建列表示例。list()#创建空列表对象lis

    2、t(Python程序设计)#创建列表对象,字符串被分成每个字符成为一个元素list(1,2,3)#创建列表对象list(range(1,101)#使用range()函数创建区间列表对象1,2,3,99,100在IDLE中的交互方式下,运行结果如图6-1所示。(3)用type()函数测试列表通过type()函数可以测试列表的数据类型,例如:type(100,3.5,Python语言,2,3,4,8)2.创建列表变量若要引用某个列表对象,则需要使用赋值运算符将列表对象赋值给变量。创建列表类型的变量与创建其他类型的变量一样,也使用赋值运算符“=”将一个列表对象赋值给变量。其语法格式如下:列表变量名=

    3、元素1,元素2,元素3,.,元素n其中,“列表变量名”表示列表的名称,列表变量名既要符合Python命名规范,又不能与内置函数重名。【例6-2】创建列表对象,然后将列表对象赋值给变量。num=1,2,3,4,5list1=Python编程,Java编程,C#编程list2=Jack,male,19,178emptylist=#emptylist是一个空列表6.1.2 列表的通用操作1.列表的访问从起始元素开始,索引值从0开始递增。Python还支持索引值是负数,从最右边的一个元素开始计数,索引值从-1开始,从右向左计数。通过方括号运算符和索引可以对列表中的元素进行访问,语法格式如下:列表变量名

    4、索引其中,“索引”表示列表中元素的位置编号,可以是一个值,也可以是一个表示索引的变量或表达式,其取值可以是正整数、负整数或0。.【例6-3】将列表赋值给变量,然后用索引访问列表中的元素。a=1,2,3,4,5print(正向索引:,a0,a1,a2,a3,a4,n负向索引:,a-1,a-2,a-3,a-4,a-5)正向索引:1 2 3 4 5 负向索引:5 4 3 2 12.列表的切片操作通过切片操作,可以从列表中截取某个范围的元素,从而构成一个新的列表。列表的切片操作的语法格式如下:列表变量名start:stop:step【例6-4】对列表切片。a=1,2,3,4,5print(a:3)#取

    5、索引0、1、2(不包括索引3处的元素)的元素,即左闭右开原则1,2,3print(a:3)#隔2个元素取一个元素,区间是整个列表1,4print(a:)#取整个列表,此时 中只需一个冒号1,2,3,4,5print(a-1:-5:-1)#从右向左取元素5,4,3,2【例6-5】索引和切片应用示例。#分别输入年、月,日,组合后以对应的英文形式输出months=January,February,March,April,May,June,July,August,September,October,November,December#定义131天的英文后缀endings=st,nd,rd+17*th+

    6、st,nd,rd+7*th+styear=input(Year:)month=int(input(Month(1-12):)day=int(input(Day(1-31):)month_name=monthsmonth-1ordinal=str(day)+endingsday-1print(month_name+ordinal+.+year)print(Spring is,months1:4)print(Autumn is,months-5:-2)运行程序,输入年、月、日,运行结果如下:Year:2019Month(1-12):11Day(1-31):28November 28th.2019S

    7、pring is February,March,AprilAutumn is August,September,October3.列表的相加使用“+”运算符做相加操作,会将两个列表前后依次连接在一起,生成一个新的列表,但不会去除重复的元素。语法格式如下:列表1+列表2【例6-6】用“+”运算符连接两个(甚至多个)列表。1,2,3+Python语言,100+60,70,80,90,100#列表对象相加1,2,3,Python语言,100,60,70,80,90,100a=1,2,3,4,5b=10,20,30a=a+b#列表变量相加print(a)1,2,3,4,5,10,20,304.列表的乘

    8、法用整数n乘以一个列表会生成一个新的列表,新列表为将原来列表重复n次得到。语法格式如下:列表*n 或 n*列表【例6-7】列表乘法运算示例之一。1,2,3*31,2,3,1,2,3,1,2,3比较特殊的是在进行列表的乘法运算时,还可以实现初始化指定长度列表的功能。【例6-8】列表乘法运算示例之二。list=None*5#创建一个长度为5的列表,列表中的每个元素都是None,表示什么都没有print(list)None,None,None,None,None0*50,0,0,0,0Hello*3Hello,Hello,Hello5.检查元素是否包含在列表中使用in关键字检查某元素是否为列表中的成

    9、员,其语法格式为:值 in 列表其中,“值”表示要检查的元素。与in关键字用法相同,但功能恰好相反的还有not in关键字,它用来检查某个元素是否不包含在指定的序列中,其语法格式为:值 not in 列表【例6-9】检查元素是否在列表中。2 in 1,2,3,4,5True s=a,bc,ad bc not in sFalse if bc in s:print(该元素在列表中)该元素在列表中6.比较两个列表使用关系运算符对两个列表进行比较。【例6-10】比较两个列表。1,2,3,41,2,2,3,4True7.访问列表中的元素(1)访问列表中的指定元素在列表变量名后的方括号中写上元素索引值,可

    10、以访问列表中的某一个元素。索引可以采用从左端的0开始向右排列的正索引;也可以从右端的-1开始向左排列的负索引。【例6-11】获取name列表中索引值为1的元素。s=abc,100,True print(s0,s1,s2)abc 100 True(2)访问列表中的全部元素如果已经创建了一个列表,要输出列表中的全部元素,只须写出列表名。【例6-12】输出例6-11中列表s的全部元素。print(s)abc,100,True(3)访问列表中的多个元素除了一次性访问列表中的全部元素外,列表还可以通过切片操作实现一次性访问多个元素。【例6-13】访问列表中的多个元素示例。num=1,2,3,4,5,6,

    11、7,8,9 print(num3:5,num6:8,num0:8,num7:9)4,5 7,8 1,2,3,4,5,6,7,8 8,9(4)遍历列表元素逐一访问列表的元素称为遍历列表元素。可以用下述4种方法来遍历列表元素。1)使用列表的索引遍历。2)使用in操作符遍历。3)使用range()或xrange()函数遍历。4)使用iter()函数遍历。【例6-14】遍历列表元素示例。mylist=11,22,33,44,55,66,77,88,99print(第1种遍历方法,使用列表的索引)i=0while i a,b,c=11,22,33 print(a,b,c)11 22 33【例6-16】拆

    12、分赋值示例之二。a,*b,c=11,22,33,44,55,66 print(a,b,c)11 22,33,44,55 666.1.3 列表的专用操作1.元素赋值通过索引可以修改列表中特定元素的值。【例6-17】元素赋值示例。a=1,2,3,4,5,6 a1=200 a3=400 a1,200,3,400,5,62.切片赋值通过切片赋值可以使用一个值列表修改列表指定范围的一组元素的值。1)切片赋值时,如果步长为1,则对提供的值列表长度没有要求。在这种情况下,可以使用与切片序列长度相等的值列表替换切片。【例6-18】切片赋值示例之一。a=1,2,3,4,5,6 a1:4=200,300,400

    13、a1,200,300,400,5,62)也可以用与切片长度不相等的值列表替换切片。如果提供的值列表长度大于切片的长度,则会插入新的元素。【例6-19】切片赋值示例之二。a=1,2,3,4,5,6 a1:4=200,300,400,500,600 a1,200,300,400,500,600,5,63)如果提供的值列表长度小于切片的长度,则会删除多出的元素。【例6-20】切片赋值示例之三。a=1,2,3,4,5,6 a1:4=200,300 a1,200,300,5,64)当切片赋值时,如果步长不等于1,则要求提供的值列表长度必须与切片长度相等,否则将出现ValueError错误。【例6-21】

    14、切片赋值示例之四。a=1,2,3,4,5,6,7,8,9,10 a0:10:2=11,33,55,77,99 a11,2,33,4,55,6,77,8,99,103.删除列表元素或列表当要从列表中删除指定的元素或者删除整个列表时,使用del语句。其语法格式如下:del 列表名键 或 列表名【例6-22】删除列表元素和列表示例。a=1,2,3,4,5,6 del a3 a1,2,3,5,6 del a aTraceback(most recent call last):File,line 1,in aNameError:name a is not defined若要从列表中删除指定范围内的元素,

    15、也可以使用切片赋值。【例6-23】用切片删除列表元素。a=1,2,3,4,5,6 a1:4=a1,5,64.列表解析列表解析有以下两种语法格式:表达式 for 变量 in 列表表达式 for 变量 in 列表 if 条件表达式其功能是将表达式应用到每个变量上,为新的列表创建一个新的数据值。其中,“表达式”可以是任何运算表达式,“变量”是列表中遍历元素的值。(1)简单的列表解析【例6-24】通过列表解析生成数字19的列表。t=x for x in range(1,10)print(t)1,2,3,4,5,6,7,8,9【例6-25】通过列表解析生成数字19的平方的列表。t=x*x for x i

    16、n range(1,10)print(t)1,4,9,16,25,36,49,64,81【例6-26】通过列表解析列出110中能被2整除的数字的平方。t=x*x for x in range(1,10)if x%2=0 t4,16,36,64【例6-27】使用列表解析生成0100之内10个随机数的列表,然后根据这个列表生成每个元素的平方的列表和偶数的列表。import randommylist=random.randint(0,100)for i in range(10)#生成列表print(mylist)mylist2=i*i for i in mylist#对列表中的每个元素进行平方运算p

    17、rint(mylist2)mylist3=i for i in mylist if i%2=0#挑选列表中的所有偶数print(mylist3)(2)两次循环两次循环是循环的嵌套,得到的列表元素个数是两轮循环中循环次数的乘积。【例6-28】先利用列表解析生成列表t和s,再通过两次循环生成一个新列表,新列表的元素为列表t和s元素的乘积。t=x for x in range(1,5)s=x for x in range(5,8)print(t)#输出1,2,3,4print(s)#输出5,6,7print(x*y for x in t for y in s)#输出5,6,7,10,12,14,15

    18、,18,21,20,24,286.1.4 列表相关的函数1.适用于序列对象的内置函数Python提供了几个内置函数(见表6-1),可用于实现与序列相关的一些常用操作。【例6-29】sorted()函数的应用。x=8,10,3,1,2,6,4,7,5,9 sorted(x)#升序排序1,2,3,4,5,6,7,8,9,10 x#排序后查看原始列表8,10,3,1,2,6,4,7,5,9 sorted(x,key=None,reverse=True)#降序排序10,9,8,7,6,5,4,3,2,1【例6-30】sum()函数的应用。x=1,2,3,4,5 sum(x)15 sum(x,10)#1

    19、5+10=25252.只适用于列表对象的成员方法(1)lst.append(x)该方法在列表lst末尾添加元素x,等价于执行复合赋值语句lst+=x。【例6-31】在列表中添加字符串元素“Python”。x=C,Java,C#x.append(Python)xC,Java,C#,Python【例6-32】列表的嵌套。t=a,b,c,dt.append(e,f)运行结果如下:a,b,c,d,e,f(2)lst.extend(L)本方法在列表lst末尾添加另一个列表L,等价于执行复合赋值语句lst+=L。【例6-33】合并两个列表。x=C,Java,C#x.extend(Python,C+)xC,

    20、Java,C#,Python,C+(3)lst.insert(i,x)该方法在列表lst的i位置插入元素x,如果i大于列表的长度,则将元素x插入到列表末尾。【例6-34】在列表x中插入元素。x=1,2,3 x.insert(1,100)x1,100,2,3 x.insert(10,200)x1,100,2,3,200(4)lst.remove()该方法从列表lst中删除第一个值为x的元素,如果列表中不存在这样的元素,则会出现ValueError错误。【例6-35】从列表x中删除元素100。x=1,2,3,4,5,6 x.remove(4)x1,2,3,5,6 x.remove(100)Trac

    21、eback(most recent call last):File,line 1,in x.remove(100)ValueError:list.remove(x):x not in list(5)lst.pop(i)该方法从列表lst中弹出索引值为i的元素,然后删除并返回该元素;如果未指定参数i,则弹出列表中的最后一个元素;如果指定的参数i越界,则出现IndexError错误。【例6-36】。返回列表x中索引值为3的元素并将其删除。x=1,2,3,4,5,6 y=x.pop(3)x1,2,3,5,6 y4(6)lst.count(x)该方法返回元素x在列表lst中出现的次数。【例6-37】返

    22、回元素2在列表x中出现的次数。x=1,2,3,2,3,2,12,0,3 x.count(2)3(7)lst.index(x)该方法返回元素x在列表lst中第一次出现的索引值。如果元素x未包含在列表lst中,则会出现ValueError错误。【例6-38】返回元素“C+”和“C#”在列表x中第一次出现的索引值。x=C,Java,C+,PHP,Python,JavaScript x.index(C+)2 x.index(C#)Traceback(most recent call last):File,line 1,in x.index(C#)ValueError:C#is not in list(

    23、8)lst.sort(key=None,reverse=False)该方法对列表lst排序,其中参数的含义与内置函数sorted()相同。使用该方法会修改原列表,若要返回一个新的列表,须使用内置函数sorted()。【例6-39】对列表x分别进行升序和降序排列。x=6,7,5,8,9,0,2,4,3,1,3 x.sort()x0,1,2,3,3,4,5,6,7,8,9 x.sort(key=None,reverse=True)x9,8,7,6,5,4,3,3,2,1,0(9)lst.reverse()该方法反转列表lst中所有元素的位置。【例6-40】反转列表中所有元素的位置。x=6,7,5,

    24、8,9 x.reverse()x9,8,5,7,66.1.5 嵌套列表如果一个列表的元素也是列表,则称该列表为嵌套列表,也称多维列表。二维列表中的每一行可以使用索引来访问,该索引称为行索引。“列表名行索引”表示列表中的某一行,其值就是一个一维列表;每一行中的值可以通过另一个索引访问,该索引称为列索引。“列表名行索引列索引”表示指定行中某一列的值,其值可以是数字或字符串等。例如,对于列表t=x00,x01,x02,x10,x11,x12,tx20,x22,x23t0表示第一个元素x00,x01,x02。对于列表中的每个元素,即子列表中的所有元素,需要使用二级索引来表示。例如,t12表示第二个子列

    25、表中的第三个元素x12。【例6-41】定义一个4行5列的二维列表m,并通过mij的形式访问列表中的元素,其中i和j分别表示行索引和列索引。m=1,2,3,4,5,11,22,33,44,55,111,222,333,444,555,a,b,c,d,f print(m00,m11,m22,m33,m34)运行结果如下:1 22 333 d f【例6-42】两层嵌套列表遍历示例。mylist=1001,Apple,2.5,山东,2021-9,20,1002,Banana,3.5,海南,2021-2,30,1003,Orange,4.3,四川,2021-12,50for each in mylist

    26、:for item in each:print(%8s%item,end=)print()运行结果如下:1001 Apple 2.5 山东 2021-9 20 1002 Banana 3.5 海南 2021-2 30 1003 Orange 4.3 四川 2021-12 50【例6-43】用列表保存若干名学生的信息,包括学号、姓名、性别和出生日期。grade=num=int(input(要输入的学生人数:)for i in range(num):stu=stu.append(input(学号:)stu.append(input(姓名:)stu.append(input(性别:)stu.appe

    27、nd(input(出生日期:)grade.append(stu)print(录入的学生名单如下:)for i in range(num):print(gradei)print(grade)#显示嵌套的列表运行结果如下:要输入的学生人数:3学号:202001姓名:王芳性别:女出生日期:2002-10-3学号:202002姓名:赵强性别:男出生日期:2001-12-22学号:202005姓名:李娜性别:女出生日期:2002-5-6录入的学生名单如下:202001,王芳,女,2002-10-3202002,赵强,男,2001-12-22202005,李娜,女,2002-5-6202001,王芳,女,

    28、2002-10-3,202002,赵强,男,2001-12-22,202005,李娜,女,2002-5-66.2.1 创建元组对象和元组变量1.创建元组对象创建元组对象的方法有两种。(1)使用圆括号创建元组对象创建元组对象(简称创建元组),就是把所有元素都放在一对圆括号()中,相邻元素之间用逗号分隔。创建元组对象的语法格式如下:(元素1,元素2,元素3,.,元素n)元组中元素的个数与类型没有限制,其规则与列表相同。【例6-44】创建元组对象。(Python语言,C+语言,C#语言,Java语言,100)#用圆括号包围多个用逗号分隔的元素(1,2,3,4,5)a,b,c,d#多个用逗号分隔的元素

    29、,输出时自动加上圆括号在IDLE中的交互方式下,运行结果如图6-2所示。(2)使用tuple类的构造函数创建元组对象元组是通过内置的tuple类定义的,因此也可以使用tuple类的构造函数创建元组,可以将字符串、元组或其他可迭代对象类型转换为元组。语法格式如下:tuple(可迭代对象)【例6-45】用tuple()构造函数创建元组。tuple()#创建空元组对象 tuple(Python程序设计)#创建元组,每个字符成为一个元素 tuple(1,2,3)#列表转换为元组 tuple(range(1,101)#使用range()函数创建区间元组(1,2,3,99,100)在IDLE中的交互方式下

    30、,运行结果如图6-3所示。2.创建元组变量创建元组变量的语法格式如下:元组变量名=(元素1,元素2,元素3,.,元素n)【例6-46】创建元组变量示例。t1=(1,2,3,4,5)t2=(Jack,male,19,178)t3=t2 print(t1,t2,t3)6.2.2 元组的基本操作1.元组的访问使用索引访问元组指定位置的元素,可以获得该索引对应位置的元素。2.元组的切片通过切片从元组中获取部分元素,可以获得由若干个元素构成的子元组。3.元组操作符元组对“+”和“*”的操作符与字符串相似。其中,“+”用于合并元组,“*”用于重复元组。使用关系运算符比较两个元组。使用成员运算符in和not

    31、 in判断某个值是否存在于元组中。4.删除整个元组虽然元组的元素不能修改,但是可以用“del 元组名”删除整个元组。5.元组的函数与方法在列表的函数和方法中,除append()、extend()和insert()这3种方法之外,其他函数和方法都可以用于元组,例如使用内置函数len()计算元组的长度等,使用for循环遍历元组。【例6-47】元组的基本操作。import randomt=tuple(int(100*random.random()for i in range(10)print(元组内容:,t)print(遍历元组:)for i in range(10):print(t0=1:8d.f

    32、ormat(i,ti),end=)if(i+1)%5=0:print()print(元组长度:,len(t)print(元组类型:,type(t)print(元组切片:t2:8=0.format(t2:8)print(元组求和:,sum(t)print(元组最大元素:,max(t)print(元组最小元素:,min(t)运行结果如下:元组内容:(5,19,38,82,38,43,99,19,32,83)遍历元组:t0=5 t1=19 t2=38 t3=82 t4=38 t5=43 t6=99 t7=19 t8=32 t9=83 元组长度:10元组类型:元组切片:t2:8=(38,82,38,4

    33、3,99,19)元组求和:458元组最大元素:99元组最小元素:56.2.3 元组封装与序列拆封1.元组封装元组封装是指将用逗号分隔的多个值自动封装到一个元组中。【例6-48】元组封装示例。t=C,Java,C+,PHP,Python,100,200 t(C,Java,C+,PHP,Python,100,200)type(t)2.序列拆封序列拆封是元组封装的逆运算,用来把一个封装起来的元组对象自动拆分成若干个基本数据。【例6-49】序列拆封示例。t=(100,Java,C+)a,b,c=t print(a,b,c)100 Java C+【例6-50】输入两个字符串并将其存入两个变量,然后交换两

    34、个变量的内容。s1=input(请输入一个字符串:)s2=input(请再输入一个字符串:)print(您输入的两个字符串是:)print(sl=0,s2=1.format(s1,s2)#执行元组封装和序列拆分操作s1,s2=s2,s1print(交换两个字符串的内容:)print(s1=0,s2=1.format(s1,s2)运行结果如下:请输入一个字符串:Java请再输入一个字符串:100您输入的两个字符串是:sl=Java,s2=100交换两个字符串的内容:s1=100,s2=Java6.2.4 元组与列表的比较1.不可变对象和可变对象2.元组与列表的区别3.元组与列表的相互转换【例6-

    35、51】元组与列表相互转换。tup1=(C,Java,C+,Python,100,200)#创建元组对象,并赋值给变量print(tup1)st1=list(tup1)#元组转换为列表print(st1)st12:5=Go,C#对列表切片赋值print(st1)tup1=tuple(st1)#将列表转换为元组print(tup1)运行结果如下:(C,Java,C+,Python,100,200)C,Java,C+,Python,100,200C,Java,Go,C#,200(C,Java,Go,C#,200)6.3.1 创建集合对象和集合变量1.创建可变集合对象和可变集合变量(1)创建可变集合对

    36、象创建可变集合对象的方法有两种。1)使用花括号创建集合对象。创建可变集合对象的语法格式如下:元素1,元素2,元素3,.,元素n【例6-52】使用花括号创建可变集合对象示例。C,Java,C+,Python,100,200C+,100,200,Python,Java,C 1,1,2,2,2,3,3,3,31,2,3 2)使用set类的构造函数创建可变集合对象语法格式如下:set(可迭代对象)【例6-53】使用set类的构造函数创建可变集合对象示例。set(1,2,3,4,5)1,2,3,4,5 set(C,Java,C+,Python)Java,C+,C,Python set(x for x i

    37、n range(10)0,1,2,3,4,5,6,7,8,9 set(Hello)o,H,l,e set()set()(2)创建可变集合变量创建可变集合变量的语法格式如下:可变集合变量名=元素1,元素2,元素3,.,元素n【例6-54】创建可变集合变量示例。s=C,Java,C+,Python,100,200 type(s)2.创建不可变集合对象和不可变集合变量(1)创建不可变集合对象由于不可变集合没有自己的语法格式,只能通过调用frozenset()函数创建。语法格式如下:frozenset(可迭代对象)【例6-55】创建不可变集合对象示例。frozenset(C,Java,C+,Pytho

    38、n,100,200)frozenset(C+,100,Java,C,200,Python)frozenset(range(10)frozenset(0,1,2,3,4,5,6,7,8,9)frozenset(Hello)frozenset(o,H,l,e)frozenset()frozenset()(2)创建不可变集合变量创建不可变集合变量的语法格式如下:不可变集合变量名=frozenset(可迭代对象)【例6-56】创建不可变集合变量示例。s=frozenset(3,0,2,7,9)type(s)6.3.2 集合的基本操作1.访问集合由于集合本身是无序的,因此不能为集合创建索引或执行切片操作

    39、,只能循环遍历,或者使用in、not in来访问或判断集合元素。2.集合的遍历使用for循环可以遍历集合中的所有元素。【例6-57】遍历集合示例。set1=C,Java,C+,Python,100,200 for x in set1:print(x,end=t)100 200 Java Python C+C6.3.3 集合的常用方法1.适用于所有集合的方法(1)set1.isubset(set2)如果集合set1是集合set2的子集,则该方法返回True,否则返回False。【例6-58】判断集合set1是否为集合set2的子集。set1=1,2,3,4,5 set2=8,6,3,7,1,2,

    40、4,9,5 set1.issubset(set2)True(2)set1.isuperset(set2)如果集合set1是集合set2的超集,则该方法返回True,否则返回False。【例6-59】判断集合set2是否集合set1的超集。set1=1,2,3,4,5 set2=8,6,3,7,1,2,4,9,5 set2.issuperset(set1)True(3)set1.isdisjoint(set2)如果集合set1和集合set2没有共同元素,则该方法返回True,否则返回False。【例6-60】判断集合set1和集合set2是否没有共同元素。set1=1,2,3,4,5 set2=

    41、8,6,3,7,1,2,4,9,5 set1.isdisjoint(set2)False(4)set1.intersection(set2,setn)该方法计算集合set1、set2、setn的交集。【例6-61】求集合set1和集合set2的交集。set1=1,2,3,4,5 set2=8,6,3,7,1,2,4,9,5 set1.intersection(set2)1,2,3,4,5(5)set1.union(set2,setn)该方法计算集合set1,set2,setn的并集。【例6-62】求集合set1和集合set2的并集。set1=1,2,3,4,5 set2=8,6,3,7,1,2

    42、,4,9,5 set1.union(set2)1,2,3,4,5,6,7,8,9(6)set1.difference(set2)该方法计算集合set1与集合set2的差集,即属于集合set2但不属于set1的元素的集合。【例6-63】求集合set1与集合set2的差集。set1=1,2,3,4,5 set2=8,6,3,7,1,2,4,9,5 set2.difference(set1)8,9,6,7(7)set1.symmetric_difference(set2)该方法计算集合set1与集合set2的对称差集。【例6-64】求集合set1与set2的对称差集。set1=1,2,3,4,5 s

    43、et2=8,6,3,7,1,2,4,9,5 set1.symmetric_difference(set2)6,7,8,9(8)set1.copy()该方法复制集合set1,返回集合set1的一个副本。【例6-65】复制集合set1。set1=3,1,2,1,2,5,4,3 set1.copy()1,2,3,4,52.仅适用于可变集合的方法下列方法会修改原集合的内容,仅适用于可变集合。(1)set1.add(x)该方法在集合set1中添加一个元素x。【例6-66】为集合set1中添加一个元素。set1=1,2,3,4,5 set1.add(Hello)set1Hello,1,2,3,4,5(2)

    44、set1.update(set2,set3,setn)该方法把集合set2、set3、setn拆分成单个数据项并将其添加到集合set1中。【例6-67】为集合set1添加多个元素。set1=1,2,3,4,5 set1.update(100,200,300,AAA,BBB,CCC)set11,2,3,4,5,100,AAA,200,CCC,300,BBB(3)set1.intersection_update(set2,set3,setn)该方法求出集合set1、set2、set3、setn集合的交集,并将其赋值给set1。【例6-68】求集合set1与其他两个集合的交集,并将结果赋值给set1

    45、。set1=1,2,3,4,5,6 set1.intersection_update(3,4,5,6,7,8,5,6,7,8,9)set15,6(4)set1.difference_update(set2,set3,setn)该方法求出属于集合set1但不属于集合set2、set3、setn的元素,并将其赋值给set1。【例6-69】求集合set1与其他两个集合的差。set1=1,2,3,4,5,6,7,8,9,10 set1.difference_update(2,3,7,8,9)set11,4,5,6,10(5)set1.symmetric_difference_update(set2)该

    46、方法求集合set1和set2的对称差集并将其赋值给set1。【例6-70】求集合set1和集合4,5,6,7,8,9的对称差集并将其赋值给set1。set1=1,2,3,4,5,6 set1.symmetric_difference_update(4,5,6,7,8,9)set11,2,3,7,8,9(6)set1.remove(x)该方法从集合set1中删除元素x,若x不存在于集合set1中,则会出现KeyError错误。【例6-71】从集合set1中删除元素3,如不存在,则报错。set1=1,2,3,4,5,6 set1.remove(3)set11,2,4,5,6 set1.remove

    47、(3)Traceback(most recent call last):File,line 1,in set1.remove(3)KeyError:3(7)set1.discard(x)该方法从集合set1中删除元素x,若x不存在于集合set1中,也不会引发任何错误。【例6-72】从集合set1中删除元素3,如不存在,则不报错。set1=1,2,3,4,5,6 set1.discard(3)set11,2,4,5,6 set1.discard(3)set11,2,4,5,6(8)set1.pop()该方法从集合set1中弹出一个元素,即删除并返回该元素。【例6-73】从集合set1中弹出一个元

    48、素。set1=1,2,3,4,5,6 set1.pop()1 set1.pop()2 set13,4,5,6(9)set1.clear()该方法删除集合set1中的所有元素。【例6-74】删除集合set1中的所有元素。set1=1,2,3,4,5,6 set1.clear()set1set()6.3.4 集合的运算1.传统的集合运算对集合数据结构,Python提供了求交集、并集、差集以及对称差集等集合运算。(1)计算交集交集是由两个集合共有的元素组成的集合,可以使用运算符“&”计算两个集合的交集。【例6-75】求set1&set2。set1=1,2,3,4,5,6 set2=3,4,5,6,7

    49、,8,9,10 set1&set23,4,5,6(2)计算并集并集是包含两个集合所有元素的集合,可以使用运算符“|”计算两个集合的并集。【例6-76】求set1|set2。set1=1,2,3,4,5,6 set2=3,4,5,6,7,8,9,10 set1|set21,2,3,4,5,6,7,8,9,10(3)计算差集对于集合A和B,由所有属于集合A但不属于集合B的元素所组成的集合称为集合A和集合B的差集,使用运算符“-”计算两个集合的差集。【例6-77】求set1-set2。set1=1,2,3,4,5,6 set2=3,4,5,6,7,8,9,10 set1-set21,2(4)计算对称

    50、差集对于集合A和B,由所有属于集合A或属于集合B但不属于集合A和B的交集的元素所组成的集合称为集合A和集合B的对称差集,使用运算符“”计算两个集合的对称差集。【例6-78】求set1set2。set1=1,2,3,4,5,6 set2=3,4,5,6,7,8,9,10 set1set21,2,7,8,9,102.集合的比较使用关系运算符可以对两个集合进行比较,比较的结果是一个布尔值。以判断一个集合是不是另一个集合的子集或超集;将一个集合并入另一个集合中;使用for循环遍历集合中的所有元素。(1)判断相等使用运算符“=”判断两个集合是否具有相同的元素,若是则返回True,否则返回False。【例

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:《Python程序设计》教学课件—06组合数据类型.pptx
    链接地址:https://www.163wenku.com/p-4768001.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库