版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
SSM框架应用于沈工高职考试系统的设计与实践第5章组合数据类型组合数据类型概念5.1组合数据类型能够将多个相同类型数据或不同类型数据组织起来,通过单一的表示使数据更加有序、更易于使用。5.1组合数据类型概念序列类型5.23序列切片1序列类型简介2序列索引4列表5元组序列是具有先后关系的一组元素序列是一维元素向量,元素类型可以不同类似数学元素序列:s0,s1,…,sn-1元素间由序号引导,通过下标访问序列的特定元素5.2.1序列类型简介1定义序列类型包含以下几种:字符串:可以看成是一个单一字符的有序组合。列表:是一个可变序列,不受长度限制,可以包含任意元素,使用[]包含元素。
例如:list1=[10,‘Java’,[1,6],10]元组:与列表类似,不同:元组元素不允许重复不能修改,以圆括号包含元素。
例如:tuple1=(‘python’,‘php’,‘Java’)5.2.1序列类型简介2种类操作符及应用描述xins如果x是序列s的元素,返回True,否则返回False"Python"in["Java","C","Python"]
Truexnotins如果x是序列s的元素,返回False,否则返回True“Python”not
in["Java","C","Python"]
Falses+t连接两个序列s和t:["C++"]+["Java","C","Python"]
["C++“,"Java","C","Python"]s*n或n*s将序列s复制n次:['C++']*4或4*['C++']
['C++','C++','C++','C++']s[i]索引,返回s中的第i个元素,i是序列的序号s[i:j]或s[i:j:k]切片,返回序列s中第i到j以k为步长的元素子序列6个操作符3通用操作符5.2.1序列类型简介函数和方法描述len(s)返回序列s的长度,即元素个数:len(["Java","C","Python"])
3max(s)返回序列s的最大元素,s中元素需要可比较max(["p","y","t","h","o","n"])
ymin(s)返回序列s的最小元素,s中元素需要可比较min(["p","y","t","h","o","n"])
hs.index(x)或s.index(x,i,j)返回序列s从i开始到j位置中第一次出现元素x的位置["Java","C","Python","C"].index("C")
1["Java","C","Python","C“,”C++”].index("C",2,4)
3s.count(x)返回序列s中出现x的总次数["Java","C","Python","C"].count("C")
25个函数和方法4通用函数和方法5.2.1序列类型简介序列类型存储一组有序的元素,通过索引可以获取序列中指定的元素。“Python"3.14151024(2,3)["中国",9]正向递增序号01234
反向递减序号-5-4-3-2-15.2.2序列索引切片是指对序列截取其中一部分的操作。切片的语法格式如下:[start_index、end_index、step]start_index:表示起始索引(包含该索引对应值)end_index:表示终止索引(不包含该索引对应值)step:正负数均可,其绝对值大小决定了切取数据时的“步长”,而正负号决定了“切取方向”,正表示“从左往右”取值,负表示“从右往左”取值。5.2.3序列切片步长大于0:从左向右顺序读取数据步长小于0:从右向左顺序读取数据列表[:]:从左向右读取全部数据列表[::-1]:从右向左读取全部数据列表[::2]:获取奇数位置元素列表[1::2]:获取偶数位置元素5.2.3序列切片例:使用切片完成如下功能:读取第2-4个元素
“python”[1:4]读取该序列所有元素“python”[:]按照倒序读取该序列所有元素“python”[::-1]读取奇数个元素“python”[::2]读取偶数个元素“python”[1::2]PYTHON反向递减序号正向递增序号-6-5-4-3-2-1012345
5.2.3序列切片列表是序列类型的一种扩展,十分常用列表是一种序列类型,创建后可以随意被修改使用方括号[]包含元素,元素间用逗号,分隔列表中各元素类型可以不同,无长度限制list1=[]list2=[1,10,55,20,6]list3=[10,”word”,True,[6,1]]5.2.4列表1定义操作操作方法创建列表list1=[];list2=[1,10];list3=[10,”word”,True,[6,1]]访问列表元素list3[2],list3[1:3],list3[1:4:2]列表遍历循环遍历:for或者whilefor
nameinlist3:print(name)增加列表元素1.末尾增加元素:list3.append(“PHP”)print(list3)
[10,”word”,True,[6,1],”PHP”]2.添加列表元素:list3.extend(list2)
[10,”word”,True,[6,1],1,10]3.添加到某个位置:list3.insert(1,”PHP”)
[10,”PHP”,”word”,True,[6,1]]8个常见操作i=0whilei<len(list3):print(list3[i])i+=12常见操作5.2.4列表操作操作方法查找元素使用关键词in和notin查找列表中包含(不包含)某个元素修改元素通过索引修改元素值:list3=[10,”word”,True,[6,1]]list3[1]=excel
[10,”excel”,True,[6,1]]删除元素1.删除指定位置元素:dellist3[1]
[10,True,[6,1]]list3.pop(1)
[10,[6,1]]2.删除最后一个元素,并返回该值:list3.pop()
[10,”word”,True]3.使用元素值删除元素:list3.remove(True)
[10,”word”,[6,1]]列表排序1.按照特定的顺序重新排序:list4=["Java","C","Python","10"]list4.sort()[‘10’,‘C’,‘Java’,‘Python’]:由小到大list4.sort(reverse=True)[‘Python’,‘Java’,‘C’,‘10’]:由大到小2.将列表逆置:list4.reverse()['10','Python','C','Java']2常见操作5.2.4列表8个常见操作元组是序列类型的一种扩展元组是一种序列类型,一旦创建就不能被修改,即不可变序列类型。不支持添加元素、删除元素和排序操作使用小括号()包含元素,元素间用逗号,分隔使用关键字tuple创建元组1定义5.2.5元组操作操作方法创建元组tuple1=(“Java”,“C”,“Python”)
tuple2=“Java”,“C”,“Python”tuple3=(“Java”,“C”,(“PHP”,“C++”))#非空元组可以省略()tuple4=tuple()tuple5=tuple("Python")访问元组tuple1[1],tuple3[2]修改元组不能修改元组值,但可以对元组进行连接:tuple6=tuple1+tuple2
(“Java”,“C”,“Python”,“Java”,“C”,“Python”)遍历元组使用for循环遍历fortempintuple1print(temp)4个常见操作2常见操作5.2.5元组函数名称函数功能len(tuple)tuple1=(“Java”,“C”,“Python”)计算元组元素个数:len(tuple1)3max(tuple)返回元组中元素最大值:max(tuple1)Pythonmin(tuple)返回元组中元素最小值:min(tuple1)Ctuple(seq)将列表、字符串转为元组:tuple(“Python”)('P','y','t','h','o','n')4个内置函数-适用元组或列表3内置函数5.2.5元组案例14:世界杯参赛队随机分组举个例子Forexample世界杯共有32支参赛队,这32支参赛队分为8个小组,每个小组有4支参赛队。现在通过随机分配的方式,将32支参赛队随机分成8个小组。案例14:世界杯球队随机分组第一组第二组第三组第四组第五组第六组第七组第八组1支2支3支4支中国巴西0123311支2支3支4支1支2支3支4支1支2支3支4支1支2支3支4支1支2支3支4支1支2支3支4支1支2支3支4支所有参赛球队列表:countrys=[“中国”,”巴西”,......]随机分组:teams=[[队1,队2,队3,队4],[队1,队2,队3,队4],......[队1,队2,队3,队4]]案例14:世界杯球队随机分组案例15:字母游戏案例15:字母游戏举个例子Forexample举个例子输入一个英文句子,找出未在该句子中出现的英文字母。注意:大小写获取源代码字母算同一个字母,如“A”和“a”都算作“A”。程序的运行结果是以大写字母的形式按字母表的顺序输出未出现的字母。案例15:字母游戏问题分析:(1)由于大小写字母都算同一个字母,并且要求程序的最后输出是以大写字母的形式,因此需要将用户输入的所有英文字符都转换成大写字母的形式。(2)排除用户输入的标点符号及不属于英文字母范围内的字符(3)找出未在用户输入的句子中出现的字母。字典5.32字典的基本操作1字典简介3字典的常用方法4字典的遍历字典相当于保存了两组数据,其中一组数据是关键数据,被称为key;另一组数据可通过key来访问,被称为value。5.3.1字典简介字典的创建有两种方式,一种是使用花括号语法来创建字典,一种是使用dict()函数来创建字典。使用花括号语法创建存储成绩表数据的字典,代码如下:scores={'语文':89,'数学':92,'英语':93}print(scores){'语文':89,'数学':92,'英语':93}5.3.1字典简介使用dict()函数创建存储成绩表数据的字典,有两种方式:传入多个元组参数scores1=dict([('语文',89),('数学',92),('英语',93)])传入多个列表参数scores2=dict([['语文',89],['数学',92],['英语',93]]){'语文':89,'数学':92,'英语':93}{'语文':89,'数学':92,'英语':93}5.3.1字典简介操作描述查找操作查找字典中某个key值对应的value值scores={'语文':89,'数学':92,'英语':93}print(scores['语文'])修改操作修改字典中某个key值对应的value值scores={'语文':89,'数学':92,'英语':93}scores['数学']=72print(scores)scores['计算机']=98#'计算机'不存在,相当于添加删除操作删除字典中某个key值对应的value值scores={'语文':89,'数学':92,'英语':93}delscores['数学']print(scores)判断key-value是否存在scores={'语文':89,'数学':92,'英语':93}print('数学'inscores)
True5.3.2字典的基本操作方法名描述len()计算字典中key-value对的个数scores={'语文':89,'数学':92,'英语':93}print("字典的键值对的个数:%d"%len(scores))
3keys()获取字典中所有的key值:scores={'语文':89,'数学':92,'英语':93}print(scores.keys())
dict_keys(['语文','数学','英语'])values()获取字典中所有的value值:scores={'语文':89,'数学':92,'英语':93}print(scores.values())
dict_values([89,92,93])Items()获取字典中所有的key-value值:scores={'语文':89,'数学':92,'英语':93}print(scores.items())
dict_items([('语文',89),('数学',92),('英语',93)])5.3.3字典的常用方法方法名描述get()返回指定键的值:scores={'语文':89,'数学':92,'英语':93}print(scores.get(‘数学'))
92print(scores.get(‘计算机’,98))
如果包含该“键”返回“值”,否则返回指定的值pop()返回字典中指定键的值并移除scores={'语文':89,'数学':92,'英语':93}print(scores.pop('英语'))93print(scores)
{'语文':89,'数学':92}clear()清除字典中所有项:scores={'语文':89,'数学':92,'英语':93}scores.clear()print(scores){}5.3.3字典的常用方法字典的常用方法-实例使用dict()函数定义一个空字典:courses向字典中增加4个键值对元素:Python:张三、C程序设计:李四、数据结构:王五、操作系统:赵六获取所有课程名称获取所有任课教师姓名获取所有课程及对应的任课教师姓名将Python授课教师改为其他名字删除错误课程信息:操作系统5.3.3字典的常用方法操作案例遍历字典的键scores={'语文':89,'数学':92,'英语':93}forkeyinscores.keys():print(key)
遍历字典的值scores={'语文':89,'数学':92,'英语':93}forvalueinscores.values():print(value)遍历字典的元素scores={'语文':89,'数学':92,'英语':93}foriteminscores.items():print(item)遍历字典中的键值对scores={'语文':89,'数学':92,'英语':93}forkey,valueinscores.items():print("key=%s,value=%s"%(key,value))5.3.4字典的遍历模块3:jieba库5.42jieba库的安装1jieba库简介3jieba库的使用5.4.1模块3:jieba库概念jieba是优秀的中文分词第三方库jieba库简介1中文文本需要通过分词获得单个的词语中文分词是指将中文语句或语段拆成若干汉语词汇。“我爱我的祖国”,-------
“我”“爱”“我”“的”“祖国”jieba是优秀的中文分词第三方库,需要额外安装
中文分词方式1:Windows下使用命令安装在联网状态下,在命令行下输入以下命令安装pipinstalljieba安装完成后会提示安装成功jieba库的安装2jieba库安装两种方式5.4.1模块3:jieba库概念方式2:Pycharm可视化安装打开Pycharm,点击file>>settings。在settings界面中点击Project:***(项目名称)>>Projectinterpreter。25.4.1模块3:jieba库概念jieba库的安装25.4.1模块3:jieba库概念jieba库的安装jieba库的分词模式精确模式:把文本精确的切分开,不存在冗余单词。全模式:把文本中所有可能的词语都扫描出来,存在冗余。搜索引擎模式:在精确模式基础上,对长词再次切分。5.4.2jieba库的分词函数jieba库常用函数函数功能描述jieba.lcut(s)精确模式,返回一个列表类型的分词结果seg_list1=jieba.lcut("中华人民共和国是伟大的")
['中华人民共和国','是','伟大','的']jieba.lcut(s,cut_all=True)全模式,返回一个列表类型的分词结果,存在冗余seg_list2=jieba.lcut("中华人民共和国是伟大的",cut_all=True)
['中华','中华人民','中华人民共和国','华人','人民','人民共和国','共和','共和国','国是','伟大','的']jieba.lcut_for_search(s)搜索引擎模式,返回一个列表类型的分词结果,存在冗余seg_list3=jieba.lcut_for_search("中华人民共和国是伟大的")
['中华','华人','人民','共和','共和国','中华人民共和国','是','伟大','的']5.4.2jieba库的分词函数案例16:中文词频统计5.5举个例子Forexample《水浒传》中,作者对谁描述最多呢?使用中文分词jieba库统计排在前五名人物及出场次数。案例16:中文词频统计获取文本字符串
txt=open("水浒传.txt","r",encoding="utf-8").read()
参数1:文件路径及文件名
参数2:文件打开模式,r只读模式打开
参数3:文件编码格式案例16:中文词频统计中文分词
words=jieba.lcut(txt)统计词语出现次数
定义字典类型counts,记录人物及出场次数ifwordincounts:counts[word]=counts[word]+1else:counts[word]=1或counts[word]=counts.get(word,0)+1案例16:中文词频统计按出现次数排序
items=list(counts.items())
items.sort(key=lambdax:x[1],reverse=True)循环输出结果
foriinrange(5):
word,count=items[i]
print("{:<10}{:>5}".format(word,count))案例16:中文词频统计去掉长度是1的“分词”去掉非人名分词案例16:中文词频统计同一人物不同称呼,累计计数:案例16:中文词频统计集合5.62集合的基本操作1集合的创建集合的定义1集合是多个元素的无序组合集合类型与数学中的集合概念一致集合元素之间无序,每个元素唯一,不存在相同元素集合元素不可更改,集合用大括号{}表示,元素间用逗号分隔5.6.1集合的创建集合的创建2建立集合类型用{}或set()方式1:使用“{}”创建集合{1,2,3}、{"python","Java","C#"}方式2:使用set()函数创建集合set(("python","Java","C#"))set("python")
#字符串中每一个元素是集合一个元素set((100,True,“C#”))
#集合元素可以不同类型set(("python","Java","C#","Java"))
#重复元素创建集合时只保留一个注意:创建空集合时,必须使用set()函数
set1=set()5.6.1集合的创建5.6.2集合的基本操作集合的基本操作1操作描述访问元素集合无序,不能使用索引访问,只能遍历set_demo=set((“Python","Java","C#"))添加元素使用add()方法向集合中添加元素:set_demo.add(“C”)删除元素remove()方法:删除集合指定元素(无,抛异常)set_demo.remove(“Java")discard()方法:删除集合指定元素(无,不抛异常)se
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中药保健专业知识培训专家讲座
- 2026及未来5年中国不粘炒锅市场现状数据分析及前景预测报告
- 2026及未来5年中国万能碎粉机市场现状数据分析及前景预测报告
- 2026及未来5年中国PVC高压喷射管市场现状数据分析及前景预测报告
- 2026及未来5年中国E紫外杀菌灯市场现状数据分析及前景预测报告
- 2025年考研历史学基础真题及答案
- 2026年危险化学品安全作业合成氨工艺作业考试题库(含答案)
- 2026年河北省唐山市国家职业技能鉴定考评员理论考试模拟试卷及答案详解
- 2026年认知层次模拟题及答案详解
- 2026年能量图形模拟题及答案详解
- 2026年重庆高考地理试卷真题及答案详解(精校打印版)
- 2026秋新教材人教版九年级上册英语Unit 1–8全册各单元语法讲义+练习题(含答案)
- 八年级上册语文课内外古诗词赏析大全
- 外贸业务试用期考核制度
- 广东省中山市2025-2026学年八年级上学期期末测试物理试卷
- 锅炉水质检验员培训课件
- 装修施工资料员培训课件
- 慢性病管理平台构建与应用
- 民族英雄戚继光课件
- 常见体表肿物课件
- 统编版2025-2026学年语文六年级上册期中阶段培优情境卷试题(有答案)
评论
0/150
提交评论