《Python基础案例教程》第4章 Python数据结构.pptx
Python基础案例教程第4章 Python数据结构PythonPython基础案例教程基础案例教程(微课版)(微课版)第第4 4章章 PythonPython数据结构数据结构第第4 4章章 Python数据结构数据结构生活中我们常常把一系列相关的数据存储在一起,比如一个人的姓名、性别、身高、体重等情况。在处理这类数据时,往往把数据集中在一起,利用数据结构进行存储,从而方便对数据进行管理,提高数据的处理和存储效率。Python中的数据结构,常见的有列表、元组、集合、字典等形式。通过本章的学习,你将认识Python中常见数据结构的形式,能够针对不同的数据,选用合适的数据结构;掌握数据结构的使用方法,综合处理一系列数据,从而获取有用的信息。教 学 内 容01 列表02 元祖03 字典目录目录CONTENTS第第4 4章章 PythonPython数据结构数据结构04 集合4.1.1 4.1.1 列表的创建与删除列表的创建与删除创建列表的方式有多种,目的都是为了更好地把数据组织在一起进行处理。创建列表最直接的方式是通过赋值语句创建,当然也可以通过list()、range()函数进行创建。如果不再需要列表中的部分元素,可以删除列表的部分元素,当然也可以把列表整体删除。列表(list)是Python最基本的数据结构,列表的所有元素都存放在一对中括号“”中,每相邻两个元素中间用逗号“,”隔开。列表的元素可以是数字、字符串、列表、元组等任何类型。本课知识点4.1.1 4.1.1 列表的创建与删除列表的创建与删除本课知识点列表格式:listname=元素1,元素2,元素3,元素n(1)示例:jieshao=Python,1991,发行,中文名:蟒蛇(2)提醒:元素没有个数限制,可以是Python的任何数据类型。列表索引:列表中的每一个元素都有编号,称为索引。正向用0n-1表示,反向用-1-n表示。例如listname0,代表列表的第一个元素。4.1.1 4.1.1 列表的创建与删除列表的创建与删除本课知识点使用赋值语句直接创建列表。示例:name=李明,王伟,张丽,王芳、num=1,2,3,4,5创建空列表。示例:num=创建数值列表:通过list()函数创建。示例:list(range(2,10,2)2,4,6,84.1.1 4.1.1 列表的创建与删除列表的创建与删除本课知识点删除列表:使用del语句删除列表。示例:del name#删除名为name的列表删除列表元素:(1)根据索引删除:使用del语句删除列表元素。del s0#删除列表s的第一个元素(2)根据索引删除:使用pop()方法实现。s.pop(-1)#删除列表s中最后一个元素(3)根据元素值删除:使用remove()方法实现,如果元素不存在,则报错。s.remove(元素值)#删除列表s中指定元素的第一个匹配项4.1.1 4.1.1 列表的创建与删除列表的创建与删除 中国诗词大会是一个深受广大诗词爱好者喜爱的节目。其中的诗词填空环节,给出诗词的上句,请你说出诗词的下一句;或者给出下句,请你说出上一句。请你编写程序,模拟出题的过程,随机显示一首诗词中的某一句,要求回答出相应的上句或下句。案例分析案例1 诗词填空4.1.1 4.1.1 列表的创建与删除列表的创建与删除import randomshi=好雨知时节,当春乃发生,随风潜入夜,润物细无声,野径云俱黑,江船火独明,晓看红湿处,花重锦官城i=random.randint(0,7)print(shii)if i%2=0:print(说出诗词的下一句:_)else:print(说出诗词的上一句:_)案例分析4.1.2 4.1.2 列表访问列表访问 由于列表是有序数列,在访问列表元素的时候,只需引用该元素的位置或索引即可。如果要访问列表中的多个元素,也可以采用切片的方式访问列表中一定范围内的元素。本课知识点 可以通过“+”将两个列表相连接,相同的元素不会删除;也可以通过乘号,使用“*”乘以数字,可以重复列表相应次数。listname.append(元素):列表末尾添加一个元素。listname.extend(列表):列表末尾添加另一个列表的元素。示例:list1=1,2,3、list2=4,5 list1.extend(list2)1,2,3,4,5listname.insert(列表索引,元素):给列表中索引位置增加一个元素。4.1.2 4.1.2 列表访问列表访问索引访问:利用列表的索引,访问列表中的某一个元素。形式:listname索引示例:s0#访问列表s中的第一个元素本课知识点切片访问:访问列表中一定范围内的部分元素。注意在列表范围内访问,否则程序报错。形式:listnamestart:end:stepstart:开始位置end:结束位置(访问时不包含结束位置)step:步长,默认为1示例:list1=1,2,3,4,5,6,7,8 print(list11:3)结果:2,34.1.2 4.1.2 列表访问列表访问案例分析生活中很多人把自己喜欢的歌曲收集在一起,形成歌单的形式,方便自己随时听歌。在制作歌单时,可以删除不想听的歌曲,也可以添加新的歌曲,对歌单可以选择某首歌曲进行播放,或者选择部分歌曲进行播放。案例2 制作歌单4.1.2 4.1.2 列表访问列表访问案例分析import randomgequ=我的未来不是梦,我相信,相信自己,从头再来,飞得更高,爱拼才会赢gequ.append(超越梦想)gequ.pop(1)print(显示全部歌单)for j in gequ:print(第,gequ.index(j)+1,首:,j)n=int(input(输入你想听的歌曲(输入序号):)print(播放第,n,首歌曲:,gequn-1)print(随机播放部分连续歌曲)l=len(gequ)i=random.randint(0,l-1)j=random.randint(0,l-1)if ij:i,j=j,iprint(播放第,i+1,首到,j+1,首歌曲:,gequi:j+1)4.1.3 4.1.3 列表运算列表运算本课知识点 对于列表,除了可以添加和删除元素,还可以求列表元素的个数,并能对列表进行排序、求最大值、求最小值、求列表元素和等操作。Python提供了丰富的列表运算方式,能有效地对列表数据进行加工和处理。len(listname):列表中元素的个数max(listname):列表中的最大元素min(listname):列表中的最小元素sum(listname):统计数值列表中所有元素的和4.1.3 4.1.3 列表运算列表运算案例分析某家电卖场需要对本月部分商品销售情况进行统计,求出本月销售量最高和最低商品,以便调整销售策略,同时根据本月销售量对下月销售进行预估,判断是否要补充商品库存。你能帮助卖场统计商品销售的情况吗?案例3 商品销售统计4.1.3 4.1.3 列表运算列表运算案例分析goods=电视机,洗衣机,冰箱,空调,热水器kucun=100,100,100,100,100sale=42,20,75,85,36maxn=max(sale)minn=min(sale)i=sale.index(maxn)j=sale.index(minn)print(本月销量最高的是:,goodsi,销量为:,salei,sep=)print(本月销量最低的是:,goodsj,销量为:,salej,sep=)l=len(kucun)print(当前库存为:)for i in range(0,l):kucuni-=salei print(*4,goodsi,kucuni)for i in range(0,l):if kucuni-salei0:diancan.append(choice)caidanchoice-=1 else:print(该菜品已经售完,请选择其他菜品。)ch=input(你还需要选择其他菜品吗(y/n):)print(你选择的菜品是:,diancan)4.4.1 4.4.1 集合的创建集合的创建本课知识点直接赋值创建使用set()函数创建4.4.1 4.4.1 集合的创建集合的创建案例分析在日常上网过程中,常常需要注册用户,当你输入用户名时,系统会自动对比数据库中的用户名信息。如果当前用户名已经存在,则提示“当前用户已经存在,请重新输入。”;如果该用户名无人使用,则提示“可以使用当前用户名注册。”。案例8 用户注册shuju=vivian,apple,sky,sun2020,apple,abc,abc123,fangzhou,jayyonghum=input(请输入你注册的用户名:)if yonghum in shuju:print(当前用户已经存在,请重新输入。)else:print(可以使用当前用户名注册。)4.4.2 4.4.2 集合元素集合元素本课知识点添加、删除集合元素4.4.2 4.4.2 集合元素集合元素本课知识点集合的并、交、差等运算4.4.2 4.4.2 集合元素集合元素案例分析学校提供了部分选修课程供学生选修,每位学生可任意选择1-3门选修课程。现对学生选择的选修课程进行统计,将全体学生的选课情况汇总到一起。当有学生选择某门选修课程时,开设这门选修课程。列出所有开设的选修课程,以及没有无人选择的课程情况。案例9 选课情况调查ke=说话的艺术,图像处理,中国武术,基础救护,人生规划,商务英语,心理学,语言文学,Ecxel办公,Word办公,哲学x1=语言文学,图像处理,Ecxel办公x2=基础救护,Word办公,商务英语x3=语言文学,人生规划,说话的艺术x=set(x1+x2+x3)print(开设选修课程为:,x)s=ke-xprint(无人选修的课程为:,s)THANKS FOR WATCHING