配色: 字号:
《Python基础案例教程》第4章(微课版)课件
2022-12-13 | 阅:  转:  |  分享 
  
《Python基础案例教程》(微课版)第4章 Python数据结构第4章 Python数据结构生活中我们常常把一系列相关的数据存储在一起
,比如一个人的姓名、性别、身高、体重等情况。在处理这类数据时,往往把数据集中在一起,利用数据结构进行存储,从而方便对数据进行管理,
提高数据的处理和存储效率。Python中的数据结构,常见的有列表、元组、集合、字典等形式。通过本章的学习,你将认识Python中常
见数据结构的形式,能够针对不同的数据,选用合适的数据结构;掌握数据结构的使用方法,综合处理一系列数据,从而获取有用的信息。教学内容
01 列表02 元祖03 字典目录CONTENTS第4章 Python数据结构04 集合4.1.1 列表的创建与删除创建列表的
方式有多种,目的都是为了更好地把数据组织在一起进行处理。创建列表最直接的方式是通过赋值语句创建,当然也可以通过list()、ran
ge()函数进行创建。如果不再需要列表中的部分元素,可以删除列表的部分元素,当然也可以把列表整体删除。列表(list)是Pytho
n最基本的数据结构,列表的所有元素都存放在一对中括号“[]”中,每相邻两个元素中间用逗号“,”隔开。列表的元素可以是数字、字符串、
列表、元组等任何类型。本课知识点4.1.1 列表的创建与删除本课知识点列表格式:listname=[元素1,元素2,元素3,……
,元素n](1)示例:jieshao=[''Python'',1991,''发行'',''中文名:蟒蛇''](2)提醒:元素没有个数限制,可以
是Python的任何数据类型。列表索引:列表中的每一个元素都有编号,称为索引。正向用0~n-1表示,反向用-1~-n表示。例如li
stname[0],代表列表的第一个元素。4.1.1 列表的创建与删除本课知识点使用赋值语句直接创建列表。示例:name=["李
明","王伟","张丽","王芳"]、num=[1,2,3,4,5]创建空列表。示例:num=[]创建数值列表:通过list()函
数创建。示例:list(range(2,10,2))→[2,4,6,8]4.1.1 列表的创建与删除本课知识点删除列表:使用de
l语句删除列表。示例:del name # 删除名为name的列表?删除列表元素:(1)根据索引删除:使用del语句删除列表元
素。 del s[0] # 删除列表s的第一个元素(2)根据索引删除:使用pop()方法实现。 s.pop(-1
) # 删除列表s中最后一个元素(3)? 根据元素值删除:使用remove()方法实现,如果元素不存在,则报错。 s.re
move("元素值") # 删除列表s中指定元素的第一个匹配项4.1.1 列表的创建与删除 《中国诗词大会》是一个深受广大
诗词爱好者喜爱的节目。其中的诗词填空环节,给出诗词的上句,请你说出诗词的下一句;或者给出下句,请你说出上一句。请你编写程序,模拟出
题的过程,随机显示一首诗词中的某一句,要求回答出相应的上句或下句。案例分析案例1 诗词填空4.1.1 列表的创建与删除impor
t randomshi=["好雨知时节","当春乃发生", "随风潜入夜","润物细无声",
"野径云俱黑","江船火独明", "晓看红湿处","花重锦官城"]i=random.randint(0,7)prin
t(shi[i])if i%2==0: print(" 说出诗词的下一句: ______________ ")else:
print(" 说出诗词的上一句: ______________")案例分析4.1.2 列表访问 由于列表是有序数列,
在访问列表元素的时候,只需引用该元素的位置或索引即可。如果要访问列表中的多个元素,也可以采用切片的方式访问列表中一定范围内的元素。
本课知识点 可以通过“+”将两个列表相连接,相同的元素不会删除;也可以通过乘号,使用“”乘以数字,可以重复列表相应次数。l
istname.append(元素) :列表末尾添加一个元素。listname.extend(列表):列表末尾添加另一个列表的元素
。 示例:list1=[1,2,3]、list2=[4,5] list1.extend(list2)→[1,2,3,4,
5]listname.insert(列表索引,元素):给列表中索引位置增加一个元素。4.1.2 列表访问索引访问:利用列表的索引
,访问列表中的某一个元素。形式:listname[索引]示例:s[0] #访问列表s中的第一个元素本课知识点切片访问:访问列表中
一定范围内的部分元素。注意在列表范围内访问,否则程序报错。形式:listname[start:end:step]? start:开
始位置? end:结束位置(访问时不包含结束位置)? step:步长,默认为1示例:list1= [1,2,3,4,5,6,7,8
] print(list1[1:3])结果:[2, 3]4.1.2 列表访问案例分析生活中很多人把自己喜欢的歌曲收集在一
起,形成歌单的形式,方便自己随时听歌。在制作歌单时,可以删除不想听的歌曲,也可以添加新的歌曲,对歌单可以选择某首歌曲进行播放,或者
选择部分歌曲进行播放。案例2 制作歌单4.1.2 列表访问案例分析import randomgequ=["《我的未来不是梦》","
《我相信》","《相信自己》", "《从头再来》","《飞得更高》","《爱拼才会赢》"]gequ.append("《超
越梦想》")gequ.pop(1)print("——显示全部歌单——")for j in gequ: print("第",g
equ.index(j)+1,"首:",j)n=int(input("输入你想听的歌曲(输入序号):"))print("播放第",
n,"首歌曲:",gequ[n-1])print("——随机播放部分连续歌曲——")l=len(gequ)i=random.ran
dint(0,l-1)j=random.randint(0,l-1)if i>j: i,j=j,iprint("播放第",i
+1,"首到",j+1,"首歌曲:",gequ[i:j+1])4.1.3 列表运算本课知识点 对于列表,除了可以
添加和删除元素,还可以求列表元素的个数,并能对列表进行排序、求最大值、求最小值、求列表元素和等操作。Python提供了丰富的列表运
算方式,能有效地对列表数据进行加工和处理。? len(listname):列表中元素的个数? max(listname):列表中的
最大元素? min(listname):列表中的最小元素? sum(listname):统计数值列表中所有元素的和4.1.3 列表
运算案例分析某家电卖场需要对本月部分商品销售情况进行统计,求出本月销售量最高和最低商品,以便调整销售策略,同时根据本月销售量对下月
销售进行预估,判断是否要补充商品库存。你能帮助卖场统计商品销售的情况吗?案例3 商品销售统计4.1.3 列表运算案例分析good
s=["电视机","洗衣机","冰箱","空调","热水器"]kucun=[100,100,100,100,100]sale=[4
2,20,75,85,36]maxn=max(sale)minn=min(sale)i=sale.index(maxn)j=sal
e.index(minn)print("本月销量最高的是:",goods[i],"销量为:",sale[i],sep="")pri
nt("本月销量最低的是:",goods[j],"销量为:",sale[j],sep="")l=len(kucun)print("
当前库存为:")for i in range(0,l): kucun[i]-=sale[i] print(" "4,
goods[i],kucun[i])for i in range(0,l): if kucun[i]-sale[i]<0:
print(goods[i],"需要补充库存",sep="")4.2.1 创建元祖本课知识点1、元组格式:元组名=
(元素1,元素2,元素3,……,元素n) 示例:week=(''星期一'', ''星期二'', ''星期三'', ''星期四'',
''星期五'', ''星期六'', ''星期天'') 提醒:元素可以是Python的任何数据类型。2、元组元素只有一个时,在元素
后增加逗号,否则()被当作运算符使用。 示例:a=(10,)3、元组索引使用与列表索引使用一致。元组中的元素无法修改和
删除,适用于保存固定元素的序列,例如保存生肖、星座等。1、使用赋值语句直接创建元组。 示例:shengxiao=(''鼠
'',''牛'',''虎'',''兔'',''龙'',''蛇'',''马'',''羊'',''猴'',''鸡'',''狗'',''猪'')2、创建空元组:a=()3、创建数值元
组:通过tuple()函数创建。 示例:tuple(range(1,10,2))→(1,3,5,7,9)4.2.1
创建元祖案例分析老师在课堂上经常有提问环节,采用随机点名回答问题的方式,既体现了抽取学生的公平和公正,也让每个同学都做好回答问题的
准备,使学生都能积极参与到课堂活动中,同时也增加了课堂趣味性。请你使用Python软件编写随机点名程序,从班级同学中随机抽取一位同
学,并显示该同学姓名。案例4 随机点名程序import randomrenyuan=("方轻舟","孙灿","张华","林伟",
"张丽","刘晓青","周子豪","宣雨晴")l=len(renyuan)i=random.randint(0,l
-1)print(renyuan[i])4.2.2 访问元组本课知识点 元组是有序序列,可以根据索引进行访问。设元组长度为n,
则正向索引从0到n -1,反向索引为-1到-n,可以直接print()函数进行输出。 示例:shengxiao=(''鼠'',''牛''
,''虎'',''兔'',''龙'',''蛇'',''马'',''羊'',''猴'',''鸡'',''狗'',''猪'')shengxiao[6:8]切片访问元组数据sh
engxiao[2]访问单个元组数据使用for语句,可以访问全部元组数据。示例:shengxiao=(''鼠'',''牛'',''虎'',''兔
'',''龙'',''蛇'',''马'',''羊'',''猴'',''鸡'',''狗'',''猪'') for value in shengxiao:
print(value ,end="")4.2.2 访问元组案例分析生肖又称属相,是中华民族悠久的民俗文化,每个
中华儿女在出生时都确定自己的生肖。对于自己的生肖你可能记得很清楚,但是任意给定一个人的出生年份,你能很快算出他的生肖吗? 案例5
计算生肖shengxiao=("猴","鸡","狗","猪","鼠","牛", "虎","兔"
,"龙","蛇","马","羊")year=int(input("输入你的出生年份:"))k=year%12print("你的生肖
是:",shengxiao[k])4.3.1 字典的创建与访问本课知识点字典名={键key1:值value1, 键key2:值v
alue2, ……, 键keyn:值valuen}示例:dict1={''姓名'':''方舟'',''年龄'':20,''身高'':180,''体重
'':75}1、创建空字典:dict1={}2、直接赋值创建字典:示例:dict2={''北京'':''010'',''上海'':''021'',''
广州'':''020''}3、使用dict()函数、zip()函数把两个列表创建为字典:示例:city=[''北京'',''上海'',''天津'',
''重庆''] quhao=[''010'',''021'',''022'',''023''] dict3=dict(zip(ci
ty,quhao))4.3.1 字典的创建与访问本课知识点访问字典,就是根据键获得与键关联的值。由于字典是无序序列,推荐使用ge
t()函数获得指定键的值,如果字典中不存在,可返回None或者指定的内容。示例:yuwen={''林华'':92,''张晴'':90,''李
小明'':85,''刘丽'':89}? yuwen[''林华'']→92? yuwen[''王明''] →字典无此键,程序报错? yuwen.g
et(''刘丽'') →89? yuwen.get(''张晓薇'',93) →字典无此键,追加输出934.3.1 字典的创建与访问案例分
析在谍战影视剧中,经常能看到破解密码的环节,往往需要通过密码本,破译密码。下面请你来设计一个密码本,输入密文,根据密码本破解密文,
生成原文。案例6 密码本mi={"j":"a","r":"b","x":"c","f":".","e":"e","w":"f",
"h":"g","y":"h","d":"i"," ":"j","m":"k","a":"l", "o":"m
","n":"n","q":"o","''":"p","y":"q","b":"r", "v":"s","s":"t","
p":"u","t":"v","z":"w","l":"x", "k":"y","c":"z","i":"''","u":
".","g":" "}miwen=input("请输入密文:")print("密文对应原文:",end="")l=len(miw
en)for i in range(0,l): print(mi.get(miwen[i]),end="")4.3.2 字
典的操作本课知识点添加字典元素删除字典元素4.3.2 字典的操作案例分析在外出就餐的过程中,常常用点餐软件进行点餐。当我们选中某
样菜品的时候,单击“+”按钮,选择该菜品放入已选菜单中。当某些菜品库存为0时,提示:“该菜品已经售完,请选择其他菜品。”,最后完成
点餐。案例7 点餐程序4.3.2 字典的操作案例分析caidan={"吴山贡鹅":3,"石耳炒蛋":6,"土豆丝":10,
"农家小炒":4,"臭鳜鱼":5,"笋烧黑猪肉":0, "地锅鸡":7,"红烧牛肉":7,"西红柿蛋汤":
10}diancan=[]print(caidan)ch="y" whi
le ch=="y": choice=input("请输入你选择的菜品:") if choice in caidan:
if caidan[choice]>0: diancan.append(choice)
caidan[choice]-=1 else: print("该菜品已经售完
,请选择其他菜品。") ch=input("你还需要选择其他菜品吗(y/n):")print("你选择的菜品是:",dian
can)4.4.1 集合的创建本课知识点直接赋值创建使用set()函数创建4.4.1 集合的创建案例分析在日常上网过程中,常常
需要注册用户,当你输入用户名时,系统会自动对比数据库中的用户名信息。如果当前用户名已经存在,则提示“当前用户已经存在,请重新输入。
”;如果该用户名无人使用,则提示“可以使用当前用户名注册。”。案例8 用户注册shuju={''vivian'',''apple'',''s
ky'',''sun2020'',''apple'', ''abc'',''abc123'',''fangzhou'',''jay''}y
onghum=input("请输入你注册的用户名:")if yonghum in shuju: print("当前用户已经存
在,请重新输入。")else: print("可以使用当前用户名注册。")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
献花(0)
+1
(本文系籽油荃面原创)