Python数据分析与应用 课件 第3章 序列_第1页
Python数据分析与应用 课件 第3章 序列_第2页
Python数据分析与应用 课件 第3章 序列_第3页
Python数据分析与应用 课件 第3章 序列_第4页
Python数据分析与应用 课件 第3章 序列_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

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

文档简介

第3章

序列《Python数据分析与应用》序列:一系列连续值,它们通常是相关的,并且按一定顺序排列。序列c:12个整数元素引用元素:序列名+[位置编号]第1个元素的位置编号为0,c[0]第2个元素是c[1]第i个元素是c[i-1]

序列也可以从尾部访问:最后一个元素是c[-1]倒数第2个是c[-2]倒数第i个元素是c[-i]位置编号——也称“下标”或“索引”,是整数或整数表达式。列表是Python中内置数据类型,是一个元素的有序集合一个列表中的数据类型可以各不相同列表中的每一个数据称为元素其所有元素用逗号分割并放在一对中括号“[”和“]”中例如:[1,2,3,4,5]['Python','C','HTML','Java','Perl

']['wade',3.0,81,['bosh','haslem']]列表的基本操作1.列表的创建使用赋值运算符“=”将一个列表赋值给变量即可创建列表对象。>>>a_list=

['physics','chemistry',2017,2.5]>>>b_list=['wade',3.0,81,['bosh','haslem']]>>>c_list=[1,2,(3.0,'helloworld!')]>>>d_list=[]2.列表元素读取方法为:列表名[索引]>>>a_list=['physics','chemistry',2017,2.5,[0.5,3]]>>>a_list[1]'chemistry'>>>a_list[-1][0.5,3]>>>a_list[5]Traceback(mostrecentcalllast):File"<pyshell#9>",line1,in<module>a_list[5]IndexError:listindexoutofrange切片操作的方法是:列表名[开始索引:结束索引:步长]。3.列表切片>>>a_list[1:3]['chemistry',2017]>>>a_list[1:-1]['chemistry',2017,2.5]>>>a_list[:3]['physics','chemistry',2017]>>>a_list[1:]

['chemistry',2017,2.5,[0.5,3]]>>>a_list[:]['physics','chemistry',2017,2.5,[0.5,3]]>>>a_list[::2]['physics',2017,[0.5,3]]a_list=['physics','chemistry',2017,2.5,[0.5,3]](1)使用“+”运算符将一个新列表添加在原列表的尾部。4.增加元素>>>id(a_list)#获取列表a_list的地址49411096>>>a_list=a_list+[5]>>>a_list['physics','chemistry',2017,2.5,[0.5,3],5]>>>id(a_list)#获取添加元组时候a_list的地址49844992

a_list=['physics','chemistry',2017,2.5,[0.5,3]](2)使用列表对象的append()方法向列表尾部添加一个新的元素

>>>a_list.append('Python')

>>>a_list['physics','chemistry',2017,2.5,[0.5,3],5,'Python'](3)使用列表对象的extend()方法将一个新列表添加在原列表的尾部。>>>a_list.extend([2017,'C'])>>>a_list['physics',2017,'chemistry',2.5,[0.5,3],5,'Python',2017,'C'](4)使用列表对象的insert()方法将一个元素插入到列表的指定位置。>>>a_list.insert(3,3.5)>>>a_list['physics',2017,'chemistry',3.5,2.5,[0.5,3],5,'Python',2017,'C']a_list=[‘physics’,‘chemistry’,2017,2.5,[0.5,3],5]6.删除元素(1)使用del命令删除列表中指定位置的元素。>>>dela_list[2]>>>a_list['physics',2017,3.5,2.5,[0.5,3],5,'Python',2017,'C']del命令也可以直接删除整个列表。>>>b_list=[10,7,1.5]>>>b_list[10,7,1.5]>>>delb_list>>>b_listTraceback(mostrecentcalllast):File"<pyshell#42>",line1,in<module>b_listNameError:name'b_list'isnotdefineda_list=['physics',2017,'chemistry',3.5,2.5,[0.5,3],5,'Python',2017,'C'](2)使用列表对象的remove()方法删除首次出现的指定元素>>>a_list.remove(2017)>>>a_list['physics',3.5,2.5,[0.5,3],5,'Python',2017,'C']>>>a_list.remove(2017)>>>a_list['physics',3.5,2.5,[0.5,3],5,'Python','C']>>>a_list.remove(2017)Traceback(mostrecentcalllast):File"<pyshell#30>",line1,in<module>a_list.remove(2017)ValueError:list.remove(x):xnotinlista_list=['physics',2017,'chemistry',3.5,2.5,[0.5,3],5,'Python',2017,'C']4.sum()格式:sum(列表)功能:对数值型列表的元素进行求和运算,对非数值型列表运算则出错>>>a_list=[23,59,-1,2.5,39]>>>sum(a_list)122.5>>>b_list=['123','xyz','zara','abc']>>>sum(b_list)Traceback(mostrecentcalllast):File"<pyshell#11>",line1,in<module>sum(b_list)TypeError:unsupportedoperandtype(s)for+:'int'and'str'13十二月20245.sorted()格式:sorted(列表)功能:对列表进行排序,默认是按照升序排序。该方法不会改变原列表的顺序。>>>a_list=[80,48,35,95,98,65,99,95,18,71]>>>sorted(a_list)[18,35,48,65,71,80,95,95,98,99]>>>a_list[80,48,35,95,98,65,99,95,18,71]降序排序:在sorted()函数的列表参数后面增加一个reverse参数,让其值等于True则表示降序排序,等于Flase表示升序排序。>>>a_list=[80,48,35,95,98,65,99,95,18,71]>>>sorted(a_list,reverse=True)[99,98,95,95,80,71,65,48,35,18]>>>sorted(a_list,reverse=False)[18,35,48,65,71,80,95,95,98,99]6.sort()格式:list.sort()功能:对列表进行排序,排序后的新列表会覆盖原列表,默认为升序排序。>>>a_list=[80,48,35,95,98,65,99,95,18,71]>>>a_list.sort()>>>a_list[18,35,48,65,71,80,95,95,98,99]降序排序:在sort()方法中增加一个reverse参数>>>a_list=[80,48,35,95,98,65,99,95,18,71]>>>a_list.sort(reverse=True)>>>a_list[99,98,95,95,80,71,65,48,35,18]>>>a_list.sort(reverse=False)>>>a_list[18,35,48,65,71,80,95,95,98,99]7.reverse()格式:list.reverse()功能:对list列表中的元素进行翻转存放,不会对原列表进行排序。>>>a_list=[80,48,35,95,98,65,99,95,18,71]>>>a_list.reverse()>>>a_list

[71,18,95,99,65,98,95,35,48,80]列表基本操作及常用函数总结如表6.1所示。方法功能list.append(obj)在列表末尾添加新的对象list.extend(seq)在列表末尾一次性追加另一个序列中的多个值list.insert(index,obj)将对象插入列表list.index(obj)从列表中找出某个值第一个匹配项的索引位置list.count(obj)统计某个元素在列表中出现的次数list.remove(obj):移除列表中某个值的第一个匹配项list.pop(obj=list[-1])移除列表中的一个元素(默认最后一个元素),并且返回该元素的值sort()对原列表进行排序reverse()反向存放列表元素cmp(list1,list2)比较两个列表的元素len(list)求列表元素个数max(list)返回列表元素的最大值min(list)返回列表元素的最小值list(seq)将元组转换为列表sum(list)对数值型列表元素求和3列表应用举例【例】从键盘上输入一批数据,对这些数据进行逆置,最后按照逆置后的结果输出。分析:将输入的数据存放在列表中,将列表的所有元素镜像对调,即第一个与最后一个对调,第二个与倒数第二个对调,……。b_list=input("请输入数据:")a_list=[]foriinb_list.split(','):a_list.append(i)print("逆置前数据为:",a_list)n=len(a_list)foriinrange(n//2):a_list[i],a_list[n-i-1]=a_list[n-i-1],a_list[i]print("逆置后数据为:",a_list)【例】编写程序,求出1000以内的所有完数,并按下面的格式输出其因子:

6itsfactorsare1,2,3。分析:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6就是一个完数,因为6的因子有1、2、3,且6=1+2+3。m=1000forainrange(2,m+1):s=0L1=[]foriinrange(1,a):ifa%i==0:s+=iL1.append(i)ifs==a:print("%ditsfactorsare:"%a,L1)程序运行结果:6itsfactorsare:[1,2,3]28itsfactorsare:[1,2,4,7,14]496itsfactorsare:[1,2,4,8,16,31,62,124,248]元组(tuple)的定义形式与列表类似,区别在于定义元组时所有元素放在一对圆括号“(”和“)”中。例如:

(1,2,3,4,5)('Python','C','HTML','Java','Perl')元组元组的基本操作1.元组的创建赋值运算符“=”将一个元组赋值给变量即可创建元组对象。>>>a_tuple=

('physics','chemistry',2017,2.5)>>>b_tuple=(1,2,(3.0,'helloworld!'))>>>c_tuple=('wade',3.0,81,['bosh','haslem'])>>>d_tuple=()创建只包含一个1个元素的元组方法:>>>x=(1)>>>x1>>>y=(1,)>>>y(1,)

>>>z=(1,2)>>>z(1,2)2.读取元素方法为:元组名[索引]>>>a_tuple=('physics','chemistry',2017,2.5)>>>a_tuple[1]'chemistry'>>>a_tuple[-1]2.5>>>a_tuple[5]Traceback(mostrecentcalllast):File"<pyshell#14>",line1,in<module>a_tuple[5]IndexError:tupleindexoutofrange3.元组切片元组也可以进行切片操作,方法与列表类似。对元组切片可以得到一个新元组。>>>a_tuple[1:3]('chemistry',2017)>>>a_tuple[::3]('physics',2.5)a_tuple=('physics','chemistry',2017,2.5)4.检索元素(1)使用元组对象的index()方法可以获取指定元素首次出现的下标。>>>a_tuple.index(2017)2>>>a_tuple.index('physics',-3)Traceback(mostrecentcalllast):File"<pyshell#24>",line1,in<module>a_tuple.index('physics',-3)ValueError:tuple.index(x):xnotintuple(2)使用元组对象的count()方法统计元组中指定元素出现的次数。>>>a_tuple.count(2017)1>>>a_tuple.count(1)0(3)使用in运算符检索某个元素是否在该元组中。>>>'chemistry'ina_tupleTrue>>>0.5ina_tupleFalsea_tuple=('physics','chemistry',2017,2.5)5.删除元组使用del语句删除元组,删除之后对象就不存在了,再次访问会出错。>>>dela_tuple>>>a_tupleTraceback(mostrecentcalllast):File"<pyshell#30>",line1,in<module>a_tupleNameError:name'a_tuple'isnotdefined列表与元组的区别及转换1.列表与元组的区别不同点在于列表是可变序列与列表相比,元组具有以下优点。(1)元组的处理速度和访问速度比列表快。如果定义了一系列常量值,主要对其进行遍历或者类似用途,而不需要对其元素进行修改,这种情况一般使用元组。可以认为元组对不需要修改的数据进行了“写保护”,可以使代码更安全。(2)作为不可变序列,元组(包含数值、字符串和其他元组的不可变数据)可用作字典的键,而列表不可以充当字典的键,因为列表是可变的。2.列表与元组的转换>>>a_list=['physics','chemistry',2017,2.5,[0.5,3]]>>>tuple(a_list)('physics','chemistry',2017,2.5,[0.5,3])>>>type(a_list)<class'list'>>>>b_tuple=(1,2,(3.0,'helloworld!'))>>>list(b_tuple)[1,2,(3.0,'helloworld!')]>>>type(b_tuple)<class'tuple'>元组应用利用元组来一次性给多个变量赋值。>>>v=('Python',2,True)>>>(x,y,z)=v>>>x'Python'>>>y2>>>zTruePython中的字符串用一对单引号(')或双引号(")括起来。例如:>>>'Python' 'Python'>>>"PythonProgram"'PythonProgram'字符串三重引号字符串如果字符串占据了几行,但却想让Python保留输入时使用的准确格式,例如行与行之间的回车符、引号、制表符或者其他信息都保存下来,则可以使用三重引号>>>'''Pythonisan"object-oriented"open-sourceprogramminglanguage''''Pythonisan"object-oriented"\nopen-sourceprogramminglanguage'字符串基本操作1.字符串创建使用赋值运算符“=”将一个字符串赋值给变量即可创建字符串对象。>>>str1="Hello">>>str1>>>str2='Program\n\'Python\'' >>>str2"Program\n'Python'"2.字符串元素读取方法为:字符名[索引]>>>str1[0]'H'>>>str1[-1]'o'3.字符串分片方法:字符串名[开始索引:结束索引:步长]>>>str="PythonProgram">>>str[0:5:2] 'Pto'>>>str[:]'PythonProgram'>>>str[-1:-20]

''>>>str[-1:-20:-1]'margorPnohtyP'4.连接使用运算符“+”,将两个字符串对象连接起来>>>"Hello"+"World"'HelloWorld'>>>"P"+"y"+"t"+"h"+"o"+"n"+"Program"'PythonProgram'将字符串和数值类型数据进行连接时,需要使用str()函数将数值数据转换成字符串,然后再进行连接运算。>>>"Python"+str(3)'Python3'5.重复字符串重复操作使用运算符“*”,构建一个由字符串自身重复连接而成的字符串对象。例如:>>>"Hello"*3'HelloHelloHello'>>>3*"HelloWorld!"'HelloWorld!HelloWorld!HelloWorld!'字符串的常用方法1.子串查找str.find(substr,[start,[,end]])>>>s1="beijingxi'antianjinbeijingchongqing">>>s1.find("beijing")0>>>s1.find("beijing",3)22>>>s1.find("beijing",3,20)-12.字符串替换字符串替换replace()方法的一般形式为: str.replace(old,new(,max))>>>s2="thisisstringexample.thisisstringexample.">>>s2.replace("is","was")

'thwaswasstringexample.thwaswasstringexample.'>>>s2="thisisstringexample.thisisstringexample.">>>s2.replace("is","was",2)'thwaswasstringexample.thisisstringexample.'13十二月20243.字符串分离

str.split([sep])sep表示分隔符,默认以空格作为分隔符。若参数中没有分隔符,则把整个字符串作为列表的一个元素,当有参数时,以该参数进行分割。>>>s3="beijing,xi'an,tianjin,beijing,chongqing">>>s3.split(',')

['beijing',"xi'an",'tianjin','beijing','chongqing']

>>>s3.split('a')

["beijing,xi'",'n,ti','njin,beijing,chongqing']>>>s3.split()

["beijing,xi'an,tianjin,beijing,chongqing"]4.字符串连接

sep.join(sequence)其中sep表示分隔符,可以为空,sequence是要连接的元素序列。>>>s4=["beijing","xi'an","tianjin","chongqing"]>>>sep="-->">>>str=sep.join(s4)#连接列表元素>>>str#输出连接结果"beijing-->xi'an-->tianjin-->chongqing">>>s5=("Hello","World")>>>sep="">>>sep.join(s5)#连接元组元素'HelloWorld'字符串应用举例【例】从键盘输入5个英文单词,输出其中以元音字母开头的单词。str="AEIOUaeiou"a_list=[]foriinrange(0,5):word=input("请输入一个英文单词:")a_list.append(word)print("输入的5个英文单词是:",a_list)print("首字母是元音的英文单词有:")foriinrange(0,5):forchinstr:ifa_list[i][0]==ch:print(a_list[i])break第3章

序列《Python数据分析与应用》字典通过任意键信息查找一组数据中值信息的过程叫映射,Python语言中通过字典实现映射。Python语言中的字典可以通过大括号({})建立,建立模式如下:{<键1>:<值1>,<键2>:<值2>,…,<键n>:<值n>}其中,键和值通过冒号连接,不同键值对通过逗号隔开。字典类型的基本概念>>>Dcountry={"中国":"北京","美国":"华盛顿","法国":"巴黎"}>>>print(Dcountry){'中国':'北京','法国':'巴黎','美国':'华盛顿'}字典打印出来的顺序与创建之初的顺序不同,各个元素并没有顺序之分。字典常用操作

1.字典的创建(1)使用“=”将一个字典赋给一个变量>>>a_dict={'Alice':95,'Beth':82,'Tom':65.5,'Emily':95}>>>a_dict{'Emily':95,'Tom':65.5,'Alice':95,'Beth':82}>>>b_dict={}>>>b_dict{}(2)使用内建函数dict()>>>c_dict=dict(zip(['one','two','three'],[1,2,3]))>>>c_dict{'three':3,'one':1,'two':2}>>>d_dict=dict(one=1,two=2,three=3)>>>e_dict=dict([('one',1),('two',2),('three',3)])>>>f_dict=dict((('one',1),('two',2),('three',3)))>>>g_dict=dict()>>>g_dict{}(3)使用内建函数fromkeys()一般形式:dict.fromkeys(seq[,value]))>>>h_dict={}.fromkeys((1,2,3),'student’)>>>h_dict{1:'student',2:'student',3:'student'}>>>i_dict={}.fromkeys((1,2,3))>>>i_dict{1:None,2:None,3:None}>>>j_dict={}.fromkeys(())>>>j_dict{}2.字典元素的读取(1)使用下标的方法>>>a_dict={'Alice':95,'Beth':82,'Tom':65.5,'Emily':95}>>>a_dict['Tom']65.5>>>a_dict[95]Traceback(mostrecentcalllast):File"<pyshell#32>",line1,in<module>a_dict[95]KeyError:95(2)使用get方法获取执行键对于的值一般形式:dict.get(key,default=None)default是指指定的“键”值不存在时,返回的值>>>a_dict.get('Alice')95>>>a_dict.get('a','address')'address'>>>a_dict.get('a')>>>print(a_dict.get('a'))Nonea_dict={'Alice':95,'Beth':82,'Tom':65.5,'Emily':95}3.字典元素的添加与修改(1)使用“字典名[键名]=键值”形式>>>a_dict['Beth']=79>>>a_dict{'Alice':95,'Beth':79,'Emily':95,'Tom':65.5}>>>a_dict['Eric']=98>>>a_dict{'Alice':95,'Eric':98,'Beth':79,'Emily':95,'Tom':65.5}a_dict={'Alice':95,'Beth':82,'Tom':65.5,'Emily':95}(2)使用update()方法>>>a_dict={'Alice':95,'Beth':79,'Emily':95,'Tom':65.5}>>>b_dict={'Eric':98,'Tom':82}>>>a_dict.update(b_dict)>>>a_dict{'Alice':95,'Beth':79,'Emily':95,'Tom':82,'Eric':98}4.字典元素的删除(1)使用del命令删除字典中指定“键”对应的元素>>>dela_dict['Beth']>>>a_dict{'Alice':95,'Emily':95,'Tom':82,'Eric':98}>>>dela_dict[82]Traceback(mostrecentcalllast):File"<pyshell#56>",line1,in<module>dela_dict[82]KeyError:82a_dict={'Alice':95,'Beth':79,'Emily':95,'Tom':82,'Eric':98}(2)使用pop()方法删除并返回指定“键”的元素>>>a_dict.pop('Alice')95>>>a_dict{Emily':95,'Tom':82,'Eric':98}a_dict={'Alice':95,'Emily':95,'Tom':82,'Eric':98}(3)使用popitem()方法,随机元素>>>a_dict.popitem()('Emily',95)>>>a_dict{'Tom':82,'Eric':98}(4)使用clear()方法>>>a_dict.clear()>>>a_dict{}(5)使用del命令删除整个字典>>>dela_dict>>>a_dictTraceback(mostrecentcalllast):File"<pyshell#68>",line1,in<module>a_dictNameError:name'a_dict'isnotdefined字典的遍历一般形式:dict.keys()>>>a_dict.keys()dict_keys(['Tom','Emily','Beth','Alice'])a_dict={'Alice':95,'Emily':95,'Tom':82,'Eric':98}1.遍历字典关键字一般形式:dict.values()>>>a_dict.values()dict_values([65.5,95,79,95])2.遍历字典的值一般形式:dict.items()>>>a_dict.items()dict_items([('Tom',65.5),('Emily',95),('Beth',79),('Alice',95)])3.遍历字典元素a_dict={'Alice':95,'Emily':95,'Tom':82,'Eric':98}字典应用举例例:输入一串字符,统计其中单词出现的次数,单词之间用空格分隔开。string=input("inputstring:")string_list=string.split()word_dict={}forwordinstring_list:ifwordinword_dict:word_dict[word]+=1else:word_dict[word]=1print(word_dict)集合

集合(set)是一组对象的集合,是一个无序排列的、不重复的数据集合体。

用一对“{}”进行界定s={0,1,2,3,4}集合常用操作1.集合的创建(1)使用“=”将一个集合赋给一个变量>>>a_set={0,1,2,3,4,5,6,7,8,9}>>>a_set{0,1,2,3,4,5,6,7,8,9}>>>b_set={1,3,3,5}//重复元素>>>b_set{1,3,5}(2)使用集合对象的set()方法创建集合>>>b_set=set(['physics','chemistry',2017,2.5])>>>b_set{2017,2.5,'chemistry','physics'}>>>c_set=set(('Python','C','HTML','Java','Perl'))>>>c_set{'Java','HTML','C','Python','Perl'}>>>d_set=set('Python')>>>d_set{'y','o','t','h','n','P'}(3)使用frozenset()方法创建一个冻结的集合>>>e_set=frozenset('a')>>>a_dict={e_set:1,'b':2}>>>a_dict{frozenset({'a'}):1,'b':2}>>>f_set=set('a')>>>b_dict={f_set:1,'b':2}Traceback(mostrecentcalllast):File"<pyshell#9>",line1,in<module>b_dict={f_set:1,'b':2}TypeError:unhashabletype:'set'2.访问集合>>>b_set=set(['physics','chemistry',2017,2.5])>>>b_set{'chemistry',2017,2.5,'physics'}>>>2.5inb_setTrue>>>3inb_setFalse>>>foriinb_set:print(i,end='')chemistry20172.5physics使用in或者循环遍历访问元素3.删除集合>>>a_set={0,1,2,3,4,5,6,7,8,9}>>>a_set{0,1,2,3,4,5,6,7,8,9}>>>dela_set>>>a_setTraceback(mostrecentcalllast):File"<pyshell#66>",line1,in<modu

温馨提示

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

评论

0/150

提交评论