Python数据分析及应用 课件 第5章组合数据类型_第1页
Python数据分析及应用 课件 第5章组合数据类型_第2页
Python数据分析及应用 课件 第5章组合数据类型_第3页
Python数据分析及应用 课件 第5章组合数据类型_第4页
Python数据分析及应用 课件 第5章组合数据类型_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

云南财经大学信息学院Python数据分析及应用第5章组合数据类型目录

5.1 列表类型5.2 元组类型5.3 集合类型5.4 字典类型5.5 jieba库的使用5.6 wordcloud库的使用知识目标:掌握Python中常见的组合数据类型(如列表、元组、集合、字典)的概念和特点。技能目标:掌握各种组合数据类型的创建、访问、修改和操作方法。素质目标:培养学生运用组合数据类型解决实际问题的能力,提高学生的编程思维和逻辑能力,培养良好的代码规范和编程习惯。学习目标

在第二章中我们已经对基本数据类型进行了介绍,在使用基本数据类型时我们发现该类型通常是单个值,如整数(int)、浮点数(float)、布尔值(bool)、字符串(str)等,它们不能再分解为更小的数据部分,在内存中占据固定的空间。

在日常应用的环境中我们需要处理的数据有很多,如学生的成绩列表、购物车中的商品列表、学生的学号和姓名的对应关系、配置文件中的参数和其对应的值等,这些数据由多个基本数据类型或其他组合数据类型组合而成,通常需要对其内部的元素进行添加、删除、修改等操作,内部元素的存储方式可能不同,且存储空间大小不固定,这样的数据类型我们无法用基本数据类型进行表达,为使Python能够更方便、高效地处理复杂的数据结构,提出了满足程序设计中对多种数据组织和操作的需求的组合数据类型。本章导读5.1.1列表类型简介在Python中,列表(List)是一种非常常用和灵活的组合数据类型。它是一个有序的、可修改的元素集合。这意味着列表中的元素有特定的顺序,并且可以随时添加、删除或修改元素。列表可以容纳不同类型的数据,包括整数、浮点数、字符串、甚至其他列表或复杂的数据结构。5.1列表类型实例5-1创建空列表:list0=[]实例5-2创建非空列表:list1=["YNUFE",17,1,6,"好学笃行,厚德致远"]列表支持各种操作:增加元素、删除元素、修改元素、切片操作5.1.2列表类型的操作(一)大规模生成列表在科学计算、物理模拟、金融建模、人工智能等领域,需要生成大量的随机数据或按照特定规律生成的数据来进行模拟实验。常用的大规模列表数据生成的方式有以下两种。5.1列表类型1.使用普通循环生成1000个元素的列表list3=[]foriinrange(1000):

list3.append(i)2.使用列表推导式生成1000个元素的列表List4=[iforiinrange(1000)]列表推导式生成方法简洁、可读性高,通常能够以更简洁的方式表达创建列表的逻辑,使代码更紧凑和易读,列表推导式生成方法在底层的实现上进行了一些优化,比普通循环方式效率更高实例5-3模拟生成掷1000次硬币结果数据,正面朝上标志为0,反面朝上标记为1,将结果数据存放入列表coin_list中。importrandom

coin_list=[random.choice([0,1])for_inrange(1000)]

print(coin_list)输出:

[0,1,0,1,0,0,1,0,0,0,1,1,0,1,1,0,……大规模生成列表实例实例5-4模拟生成价格区间在15元至100元之间的1000种商品的价格,生成价格数据保留两位小数点,将结果数据存放入列表prices_list中。importrandomprices_list=[round(random.uniform(15,100),2)for_inrange(1000)]print(prices_list)输出:[18.57,45.45,87.37,75.56,87.21,98.49,……大规模生成列表实例(二)列表的访问在Python中,列表和字符串都是序列类型的数据,可以通过索引来访问列表中的元素。列表的索引从0开始。常见的列表访问方式有访问单个元素、使用负数索引从列表尾部访问元素、切片访问,操作方式与字符串操作方式类似5.1.2列表类型的操作现定义列表list5=[11,22,33,44,55,66,77]1.索引访问单个元素功能语句输出结果访问list5的第1个元素print(list5[0])11访问list5的第3个元素print(list5[2])33访问list5的倒数第1个元素print(list5[-1])77访问list5的倒数第3个元素print(list5[-3])555.1.2列表类型的操作现定义列表list5=[11,22,33,44,55,66,77]2.切片访问多个元素基本语法是list[start:end:step],其中:start(可选,默认为0):切片的起始位置索引。end(可选,默认为列表的长度):切片的结束位置索引(不包含该位置的元素)。step(可选,默认为1):切片的步长,表示每隔几个元素取一个。功能语句输出结果访问list5的索引1到4的元素print(list5[1:4])[22,33,44]访问list5的索引3开始到列表末尾的元素print(list5[3:])[44,55,66,77]访问list5的从开头到索引5的元素print(list5[:5])[11,22,33,44,55]访问list5的索引1到7且步长为2的元素print(list5[1:7:2])[22,44,66]访问整个list5列表的全部元素print(list5[:])[11,22,33,44,55,66,77]倒序访问list5数据print(list5[::-1])[77,66,55,44,33,22,11](三)列表的其他操作5.1.2列表类型的操作1.修改列表中的元素在Python中,列表是一种可变的数据类型,可以直接修改列表中的元素。要修改列表中的元素,需要知道该元素的索引位置。通过索引,可以将新的值赋给对应的位置,从而实现对元素的修改。实例5-5在列表list5中要将数据44修改为88,我们要先确定元素44的索引,然后根据索引直接赋值修改list5=[11,22,33,44,55,66,77]list5[3]=88print(list5)输出:

[11,22,33,88,55,66,77](三)列表的其他操作5.1.2列表类型的操作2.列表连接和复制列表之间可以使用“+”运算符和“*”运算符实现列表的连接和复制,通过连接和复制可以生成一个新的列表。实例5-6现有列表List6=["云南财经大学","会计学院"]和列表list7=["2024级","会计学专业"],现将两个列表连接后输出显示,同时复制list7列表内容后输出显示List6=["云南财经大学","会计学院"]list7=["2024级","会计学专业"]print(list6+list7)输出:['云南财经大学','会计学院','2024级','会计学专业'](三)列表的其他操作5.1.2列表类型的操作3.添加列表中的元素(1)append()append()方法用于在列表的末尾添加一个元素。这个方法操作简单直接,只需要将要添加的元素作为参数传递给它即可。实例5-7在列表list5中添加元素88,并显示添加后的内容list5=[11,22,33,44,55,66,77]list5.append(88)print(list5)输出:[11,22,33,44,55,66,77,88](三)列表的其他操作5.1.2列表类型的操作3.添加列表中的元素(2)extend()extend()则用于将一个可迭代对象(如另一个列表、元组、字符串等)的所有元素依次添加到当前列表的末尾实例5-8现有列表List6=["云南财经大学","会计学院"]和列表list7=["2024级","会计学专业"],现将list7添加在list6后输出显示。list6=["云南财经大学","会计学院"]list7=["2024级","会计学专业"]list6.extend(list7)print(list6)输出:['云南财经大学','会计学院','2024级','会计学专业'](三)列表的其他操作5.1.2列表类型的操作3.添加列表中的元素(3)insert()insert()能够在指定的索引位置插入一个元素。需要提供两个参数,第一个是索引位置,第二个是要插入的元素。实例5-9在列表list5中的索引为3的位置插入元素88,并显示插入后的内容list5=[11,22,33,44,55,66,77]list5.insert(3,88)print(list5)输出:[11,22,33,88,44,55,66,77](三)列表的其他操作5.1.2列表类型的操作4.移除列表中的元素(1)remove()remove()方法用于移除列表中指定值的第一个匹配项。该方法没有返回值,但会直接在原列表上进行修改。该方法只会移除第一个匹配到的元素。实例5-10在列表list8中移除第一个33,并显示移除后的内容list8=[11,22,33,44,55,66,77,33,88]list8.remove(33)print(list8)输出:[11,22,44,55,66,77,33,88](三)列表的其他操作5.1.2列表类型的操作4.移除列表中的元素(2)pop()pop()方法用于移除并返回列表中指定位置的元素。该方法会直接修改原列表。实例5-11在列表list8中移除最后一个元素,把移除的元素放到变量pop_val中,并显示移除后的列表的内容和pop_val的值。list8=[11,22,33,44,55,66,77,33,88]pop_val=list8.pop()print(list8)print(pop_val)输出:[11,22,33,44,55,66,77,33]88实例5-12在列表list8中移除索引为3元素,把移除的元素放到变量pop_val中,并显示移除后的列表的内容和pop_val的值。list8=[11,22,33,44,55,66,77,33,88]pop_val=list8.pop(3)print(list8)print(pop_val)输出:[11,22,33,55,66,77,33,88]44(三)列表的其他操作5.1.2列表类型的操作4.移除列表中的元素(3)deldel语句用于删除对象。当用于删除列表时,它可以根据索引删除列表中的元素。实例5-13在列表list8中移除索引为4元素,并显示移除后的列表的内容。list8=[11,22,33,44,55,66,77,33,88]dellist8[4]print(list8)输出:[11,22,33,44,66,77,33,88]实例5-14在列表list8中移除索引为2到5的元素,并显示移除后的列表的内容。list8=[11,22,33,44,55,66,77,33,88]dellist8[2:5]print(list8)输出:[11,22,66,77,33,88](三)列表的其他操作5.1.2列表类型的操作5.嵌套列表嵌套列表指的是列表中的元素本身也是列表。嵌套列表可以用来表示矩阵、表格数据、树结构等复杂的多维数据结构。list9=[[1,2,3],[4,5,6],[7,8,9]]list9就是一个3行3列的嵌套列表,表示了一个简单的矩阵。可以通过多重索引访问嵌套列表中的元素。要获取list9中第二行第三列的元素,可以这样写:print(list9[1][2])输出为:6嵌套列表在处理复杂的数据结构和逻辑时非常有用,也可按二维表格形式处理数据。以下是一个表示学生成绩的嵌套列表:stu=[["202305001212","李平",90,85,90],

["202305001345","张涛",80,75,80],

["202305001478","王程",85,95,92]]如果要查询张涛的期末成绩我们可以用以下语句:print(stu[1][4])输出为:80(三)列表的其他操作5.1.2列表类型的操作5.嵌套列表实例5-15在列表stu中包括学生学号、姓名、平时成绩、期中成绩、期末成绩,如果期末总评成绩=平时成绩*0.3+期中成绩*0.3+期末成绩*0.4,显示每个同学的姓名及对应的期末总评成绩。stu=[["202305001212","李平",90,85,90],

["202305001345","张涛",80,75,80],

["202305001478","王程",85,95,92]]foriinrange(0,3):print(stu[i][1],round(stu[i][2]*0.3+stu[i][3]*0.3+stu[i][4]*0.4,1))输出:李平88.5张涛78.5王程90.8嵌套列表为组织和处理复杂的、多维的数据提供了一种有效的方式。但在使用时需要注意索引的正确性,以避免出现索引错误。5.2.1元组类型简介元组是Python中的一种不可变序列类型,用圆括号括起来,元素之间通过逗号分隔。在应用中,元组一旦创建,其内容不能修改,即无法添加、删除或修改元素。这样的特点使得元组在某些情况下非常有用。元组可以包含任何类型的数据,包括数字、字符串、布尔值,甚至是其他元组或列表。5.2 元组类型创建元组的基本方式有几种。最直接的方法是将多个数据项用逗号隔开,放在圆括号内。例如tuple1=(1,2,3)tuple1是一个包含三个整数的元组。此外,还可以使用内置的tuple()函数创建元组,该函数接受一个可迭代对象作为参数,并将其转换为元组。由于元组是不可变的,因此不能直接修改其内容。但是,可以通过多种方法间接修改元组内容。一种常见的方法是将元组转换成列表,进行修改后再转回元组。另一种方法是使用切片和拼接操作来生成新的元组,从而实现对原始元组的部分"修改"。在Python中,元组与列表相似,不同之处在于元组的元素不能修改,而列表的元素可以修改,元组使用小括号(),列表使用中括号[]。列表的访问方式、连接复制方式等操作都可以用于对元组的操作。(一)元组的创建元组的创建很简单,使用圆括号()直接创建或者使用tuple()函数创建,只需要在圆括号中添加元素,并使用逗号隔开即可。5.2.2 元组类型的操作1.使用()创建通过()创建元组后,使用=将它赋值给变量,格式如下:tuple2=('云南财经大学','会计学院','2024级','会计学专业')print(tuple2)输出为:('云南财经大学','会计学院','2024级','会计学专业')如果元组只有一个元素,需要在元素后面加一个逗号,以表示它是一个元组。tuple3=(1)tuple4=(1,)print(tuple3)print(tuple4)print(type(tuple3))print(type(tuple4))输出为:1(1,)<class'int’><class'tuple'>(一)元组的创建5.2.2 元组类型的操作2.使用tuple()函数创建元组我们除了可以使用()创建元组,还可以使用tuple()函数创建元组,但tuple()函数偏向于将某个类型转换为元组。list1=["YNUFE",17,1,6,"好学笃行,厚德致远"]tuple5=tuple(list1)print(list1)print(tuple5)print(type(list1))print(type(tuple5))输出为:['YNUFE',17,1,6,'好学笃行,厚德致远']('YNUFE',17,1,6,'好学笃行,厚德致远')<class'list'><class'tuple'>(二)元组的访问元组的访问方式与列表的访问方式一致,也是通过索引来访问元组中的元素,索引从0开始。5.2.2 元组类型的操作功能描述执行语句输出结果访问索引为0的元素print(tuple6[0])11访问索引为2的元素print(tuple6[2])33访问索引为-1的元素print(tuple6[-1])77访问索引为-3的元素print(tuple6[-3])55访问索引为9的元素print(tuple6[9])IndexError访问索引1到4的元素print(tuple6[1:4])(22,33,44)访问索引3开始到列表末尾的元素print(tuple6[3:])(44,55,66,77)访问从列表开头到索引5的元素print(tuple6[:5])(11,22,33,44,55)访问索引1到7且步长为2的元素print(tuple6[1:7:2])(22,44,66)访问整个列表的全部元素print(tuple6[:])(11,22,33,44,55,66,77)倒序访问所有数据print(tuple6[::-1])(77,66,55,44,33,22,11)(三)列表和元组的对比列表和元组都是python中常用的序列类型,选择使用元组还是列表取决于具体的需求和使用场景。如果数据是固定不变的,元组可能更合适;如果数据需要频繁修改,列表则更方便。5.2.2 元组类型的操作

列表元组可

性列表是可变的,可以添加、删除、修改元素元组是不可变的,创建后其元素不能被修改、添加或删除创建方式列表使用方括号

[]

定义元组使用小括号

()

定义性

数据量大时性能优于列表用

途列表适用于需要频繁修改、添加或删除元素的场景,比如动态数据元组常用于表示固定不变的数据,如坐标、常量集合等存储方式列表的存储空间可能会因为元素的添加和删除而动态调整元组的存储空间在创建时就确定,不会改变操作支持列表支持更多的操作方法,如append()、insert()、pop()等用于修改列表的方法。元组由于不可变,不支持修改操作的方法5.3.1集合类型简介集合不仅可用来表示数及其运算,更可用于非数值信息的表示和处理,集合的定义是这样的“一般把一些确定的、彼此不同的或具有共同性质的事物汇集成的一个整体,称为一个集合,组成集合的那些事物就称为集合的元素”,在Python中,集合(Set)是一种无序且不包含重复元素的数据结构,集合中的元素不会重复,集合中的元素没有特定的顺序,无法通过索引来访问元素。5.3 集合类型在python中集合经常应用于以下场景:去重:快速去除列表或其他可迭代对象中的重复元素。成员关系测试:判断一个元素是否在集合中,时间复杂度为O(1)。集合运算:解决涉及并集、交集、差集等的问题。运算运算符方法功能描述并集|union()返回一个包含两个集合中所有元素的新集合交集&intersection()返回一个包含两个集合中共同元素的新集合差集-difference()返回一个新集合,其中包含在第一个集合中但不在第二个集合中的元素对称差集^symmetric_difference()返回一个新集合,其中包含只在其中一个集合中出现的元素(一)创建集合在python中经常使用{}直接创建集合,也可使用set()函数将其他可迭代对象(列表、元组、字符串等)转换为集合5.3.2集合类型的操作实例5-16直接用{}创建集合set1,将11、22、33、44、55、66、77作为元素放在集合内,并显示set1的内容和类型。set1={11,22,33,44,55,66,77}print(set1)print(type(set1))输出:{33,66,22,55,11,44,77}<class'set'>实例5-17用set()函数将列表list8转换为集合set2,并显示list8、set1的内容和类型。list8=[11,22,33,44,55,66,77,33,88]set2=set(list8)print(list8)print(type(list8))print(set2)print(type(set2))输出:[11,22,33,44,55,66,77,33,88]<class'list'>{33,66,11,44,77,22,55,88}<class'set'>(二)集合的基本操作1.添加集合元素5.3.2集合类型的操作在Python中,向集合添加元素主要有两种常用方法:add()方法和update()方法,add()方法用于向集合中添加一个元素,update()方法用于将一个可迭代对象中的元素添加到集合中。用add()方法添加单个元素88添加到集合set1中:set1={11,22,33,44,55,66,77}set1.add(88)print(set1)输出为:{33,66,22,55,88,11,44,77}用update()方法将列表list9中的元素添加到集合set1中:set1={11,22,33,44,55,66,77}list9=[88,99,0]set1.update(list9)print(set1)输出为:{0,66,11,77,22,88,33,99,44,55}(二)集合的基本操作2.删除集合元素5.3.2集合类型的操作在Python中,删除集合中的元素常用方法有remove()、discard()、pop()、clear(),remove()方法用于从集合中删除指定的元素;discard()方法也是用于从集合中删除指定的元素;pop()方法用于随机删除并返回集合中的一个元素;clear()方法用于清空集合中的所有元素,直接将集合变为空集。用remove()方法删除set1集合中单个元素“55”set1={11,22,33,44,55,66,77}set1.remove(55)print(set1)输出为:{33,66,22,11,44,77}用pop()方法随机删除set1中的一个元素,并将删除元素放在变量del_ele中:set1={11,22,33,44,55,66,77}del_ele=set1.pop()print(set1)print(del_ele)输出为:{66,22,55,11,44,77}33用clear()方法清空集合set1,使set1变为空集:set1={11,22,33,44,55,66,77}set1.clear()print(set1)输出为:set()5.4.1字典类型简介在Python中,字典(Dictionary)是一种无序的键值对数据结构。可以使用花括号{}来创建字典,并通过key:value的形式来定义键值对。键必须是唯一且不可变的数据类型,通常使用字符串、数字或元组。值可以是任何数据类型,包括列表、字典等。字典是无序的,即键值对的存储顺序不固定。5.4 字典类型stu是一个字典:stu1={"202305001212":"李平","202305001345":"张涛","202305001478","王程"}在字典stu中,学号就是键,从键可以找到相应的值,即姓名,stu字典可以视为是二维结构的表格学号姓名202305001212李平202305001345张涛202305001478王程键值对映射关系可变性与动态性键的不可变性无序性与非序列性嵌套性与复杂性空间与时间效率特点5.4.2字典类型的操作(一)创建字典5.4 字典类型在Python中,创建字典(Dictionary)有多种方法,常见的方式是用{}直接创建、使用dict()函数创建实例5-27用{}直接创建字典。stu1={"202305001212":"李平","202305001345":"张涛","202305001478":"王程"}print(stu1)print(type(stu1))程序运行结果:{'202305001212':'李平','202305001345':'张涛','202305001478':'王程'}<class'dict'>从包含键值对的元组列表list_of_tuple创建字典list_of_tuple=[("202305001212","李平"),("202305001345","张涛"),("202305001478","王程")]stu2=dict(list_of_tuple)print(list_of_tuple)print(type(list_of_tuple))print(stu2)print(type(stu2))程序运行结果:[('202305001212','李平'),('202305001345','张涛'),('202305001478','王程')]<class'list'>{'202305001212':'李平','202305001345':'张涛','202305001478':'王程'}<class'dict'>(二)访问字典中的值在python中,访问字典中的值有多种方法,方括号[]指定键值访问、使用get()方法、遍历字典访问值、根据条件判断访问值。5.4.2字典类型的操作实例5-28方括号[]指定键值访问stu1={"202305001212":"李平","202305001345":"张涛","202305001478":"王程"}print(stu1["202305001345"])程序运行结果:张涛实例5-29使用get()方法访问字典中的值stu1={"202305001212":"李平","202305001345":"张涛","202305001478":"王程"}print(stu1.get("202305001345"))程序运行结果:张涛(二)访问字典中的值对字典进行遍历时,可以通过遍历键来获取对应的值,也可以同时遍历键和值。5.4.2字典类型的操作实例5-30遍历字典键。stu1={"202305001212":"李平","202305001345":"张涛","202305001478":"王程"}forkeyinstu1:print(stu1[key])程序运行结果:李平张涛王程实例5-31遍历字典键值对stu1={"202305001212":"李平","202305001345":"张涛","202305001478":"王程"}forkey,valueinstu1.items():print(key,value)程序运行结果:202305001212李平202305001345张涛202305001478王程(二)访问字典中的值5.4.2字典类型的操作实例5-32根据条件访问stu1={"202305001212":"李平","202305001345":"张涛","202305001478":"王程"}if"202305001478"instu1:print(stu1["202305001478"])程序运行结果:王程实例5-33获取所有键或值stu1={"202305001212":"李平","202305001345":"张涛","202305001478":"王程"}keys=stu1.keys()values=stu1.values()items=stu1.items()print(keys)print(values)print(items)程序运行结果:dict_keys(['202305001212','202305001345','202305001478'])dict_values(['李平','张涛','王程'])dict_items([('202305001212','李平'),('202305001345','张涛'),('202305001478','王程')])(三)添加或更新键值对在Python中,添加或更新字典中的键值对可以通过直接赋值、update()方法来实现。直接赋值时如果键不存在,这将添加一个新的键值对。如果键已存在,这将更新该键对应的值。5.4.2字典类型的操作实例5-34更新键值对stu1={"202305001212":"李平","202305001345":"张涛","202305001478":"王程"}stu1["202305001478"]="王成"print(stu1)程序运行结果:{'202305001212':'李平','202305001345':'张涛','202305001478':'王成'}实例5-35添加键值对stu1={"202305001212":"李平","202305001345":"张涛","202305001478":"王程"}stu1["202305001488"]="王成"print(stu1)程序运行结果:{'202305001212':'李平','202305001345':'张涛','202305001478':'王程','202305001488':'王成'}实例5-36使用update()方法可以一次性添加或更新多个键值对stu1={"202305001212":"李平","202305001345":"张涛","202305001478":"王程"}stu1.update({"202305001212":"李小平","202405001478":"王程","202405001488":"王成"})print(stu1)程序运行结果:{'202305001212':'李小平','202305001345':'张涛','202305001478':'王程','202405001478':'王程','202405001488':'王成'}(四)删除字典键值在Python中,删除字典中的键值对常见的方法有del语句、pop()方法、popitem()方法、clear()方法。del语句直接根据指定键删除键值对;pop()方法会删除指定的键值对,并返回被删除的值;popitem()方法会随机删除并以元组形式返回一个键值对;clear()方法用于清空字典中的所有键值对,使用后字典将变为一个空字典。5.4.2字典类型的操作实例5-37用del语句删除stu1字典中键为"202305001345"的键值stu1={"202305001212":"李平","202305001345":"张涛","202305001478":"王程"}delstu1["202305001345"]print(stu1)程序运行结果:{'202305001212':'李平','202305001478':'王程'}实例5-38用pop()方法删除stu1中的键为"202305001345"的键值,并将删除的值放在变量del_val1中。stu1={"202305001212":"李平","202305001345":"张涛","202305001478":"王程"}del_val1=stu1.pop("202305001345")print(stu1)print(del_val1)程序运行结果:{'202305001212':'李平','202305001478':'王程'}张涛(四)删除字典键值5.4.2字典类型的操作实例5-39popitem()方法随机删除一个键值对,并将删除的键值放在变量del_val2中stu1={"202305001212":"李平","202305001345":"张涛","202305001478":"王程"}del_val2=stu1.popitem()print(stu1)print(del_val2)print(type(del_val2))程序运行结果:{'202305001212':'李平','202305001345':'张涛'}('202305001478','王程')<class'tuple'>实例5-40用clear()方法清空字典stu1,使stu1变为空字典stu1={"202305001212":"李平","202305001345":"张涛","202305001478":"王程"}stu1.clear()print(stu1)程序运行结果:{}5.5.1英文文本分词英文文本分词使用split()函数完成,用于将字符串按照某个特定的分隔符拆分成多个部分。split()函数的返回值是一个列表,包含了被分割的子字符串。5.5jieba库的使用split函数的语法如下:str.split([sep[,maxsplit]])参数解释:str表示要分割的字符串sep表示分隔符,如果没有指定则默认为以空格为分隔符maxsplit表示最大分割次数,如果指定,则将字符串分割成最多maxsplit个字符串,否则将全部分割。实例5-41split()函数示例strs='tobeornottobe'print(strs.split())print(strs.split('b'))程序运行结果:['to','be','or','not','to','be']['to','eornotto','e']5.5.2中文文本分词中文文本分词可用使用jieba库完成。如果没有安装jieba库,在命令提示符下键入pipinstalljieba命令安装。5.5jieba库的使用函数描述jieba.cut(s)精确模式,返回一个可迭代的数据类型jieba.cut(s,cut_all=True)全模式,输出文本s中所有可能单词jieba.cut_for_search(s)搜索引擎模式,适合搜索引擎建立索引的分词结果jieba.lcut(s)精确模式,返回一个列表类型,建议使用jieba.lcut(s,cut_all=True)全模式,返回一个列表类型,建议使用jieba.lcut_for_search(s)搜索引擎模式,返回一个列表类型,建议使用jieba.add_word(w)向分词词典中增加新词w精确模式试图将句子最精确地切开,适合文本分析。全模式把句子中所有的可以成词的词语都扫描出来,速度非常快,但是不能解决歧义。搜索引擎模式在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。5.5.2中文文本分词5.5jieba库的使用实例5-42jieba.lcut()精确模式。importjiebastrs='不知细叶谁裁出,二月春风似剪刀'print(jieba.lcut(strs))程序运行结果:['不知','细叶','谁','裁出',',','二月','春风','似','剪刀']实例5-43jieba.lcut全模式importjiebastrs='不知细叶谁裁出,二月春风似剪刀'print(jieba.lcut(strs,cut_all=True))程序运行结果:['不知','细叶','谁','裁','出',',','二月','春风','似','剪刀']词云是一种可视化描绘单词或词语出现在文本数据中频率的方式,它主要是由随机分布在词云图的单词或词语构成,出现频率较高的单词或词语则会以较大的形式呈现出来,而频率越低的单词或词语则会以较小的形式呈现。词云主要提供了一种观察社交媒体网站上的热门话题或搜索关键字的一种方式,它可以对网络文本中出现频率较高的“关键词”予以视觉上的突出。Wordcloud又称词云,是文本数据的视觉表示,由词汇组成类似云的彩色图形,用于展示大量文本数据。每个词的重要性以字体大小或颜色显示。Wordcloud库是一款Python的第三方库,需要通过pip指令在终端安装。如果没有安装wordcloud库,在命令提示符下键入pipinstallwordcloud命令安装。5.6Wordcloud库的使用Wordcloud库常用函数函数含义wordcloud.WordCloud() 根据参数生成一个WordCloud对象w.generate()向对象w中加载文本w.to_file() 将词云图存储为图像文件(.png或.jpg格式)Wordcloud对象配置参数参数描述font_path:string字体路径width:int(default=400)输出的画布宽度,默认为400像素height:int(default=200)输出的画布高度,默认为200像素

mask:nd-arrayorNone(default=None)如果参数为空,则使用二维遮罩绘制词云;如果mask非空,设置的宽高值将被忽略,遮罩形状被mask取代。除全白(#FFFFFF)的部分不会绘制,其余部分会用于绘制词云background_color:colorvalue(default="black") 背景颜色5.6Wordcloud库的使用实例5-44生成词云图importjiebatext='《三体》凭借极具想象张力的科学叙事,科学派与人文派兼具,征服了广大海外读者。在多元化的读者阅读中,文本符号的隐喻价值被解构成不同的能指,具有较强的不确定性,而所指也处于游离状态,这种开放式的文本解读,充分满足了读者差异化的审美需求,形成了非常强的包容性和超现实美感。'words=jieba.lcut(text)importwordcloud#生成词云图importmatplotlib.pyplotaspltwords=''.join(words)img=plt.imread('c:/temp/s2.jpg')wc=wordcloud.WordCloud(background_color='white',font_path="msyh.ttc",mask=imgwc.generate(words)print("将词云图以文件的方式保存在c:/temp/L56.png")wc.to_file("c:/temp/L56.png")图5-2遮罩图图5-3词云图本章总结1.组合数据类型概述概念与分类:组合数据类型可组织多个数据,分为序列类型(如字符串、列表、元组)、集合类型和映射类型(如字典)。应用场景:适用于处理复杂数据结构,如学生成绩、购物车商品等。2.列表类型简介:有序、可修改,能容纳不同类型数据,创建方式多样,支持多种操作。操作生成列表:可通过普通循环或列表推导式生成,后者更简洁高效。访问元素:通过索引(正数或负数)或切片访问单个或多个元素。修改元素:直接通过索引赋值。列表连接和复制:使用“+”和“*”运算符或extend、copy方法。添加元素:有append、extend、insert方法。移除元素:包括remove、pop、del语句,各有特点。嵌套列表:用于表示复杂多维数据,可通过多重索引访问元素。本章围绕Python的组合数据类型展开教学,包括列表、元组、集合、字典等,同时介绍了jieba库和wordcloud库的使用。通过学习,学生能够掌握各种组合数据类型的概念、特点、操作方法,以及在实际编程中的应用,还能培养良好的编程习惯和解决问题的能力。本章总结

3.元组类型简介:不可变序列,用圆括号括起来,元素可包含多种类型,创建方式有多种。操作创建:使用()或tuple()函数。访问:与列表类似,通过索引访问元素。对比:与列表相比,元组不可变,性能在数据量大时更优,常用于表示固定数据。4.集合类型简介:无序、不包含重复元素,用于去重、成员关系测试和集合运算。操作创建:用{}或set()函数。基本操作:添加元素用add、update方法,删除元素有remove、discard、pop、clear方法。5.字典类型简介:无序键值对数据结构,键唯一且不可变,值可为任意类型,具有多种特点。操作创建:用{}或dict()函数。访问值:有多种方法,如方括号指定键值、get方法、遍历

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论