《Python语言数据结构.pptx》由会员分享,可在线阅读,更多相关《Python语言数据结构.pptx(68页珍藏版)》请在优知文库上搜索。
1、Python语言数据结构 掌握元组和列表等序列结构的操作方法 掌握字符串的常见操作方法 掌握字典数据结构的操作方法 掌握集合数据结构的操作方法2引言 为了在计算机程序中表示现实世界中更加复杂的数据,Python除了提供数字和字符串等数据类型,还提供了元组、列表、字典和集合等复杂类型的数据结构。 3序列 序列是Python中最基本的数据结构,其中最常见的就是元组、列表和字符串。元组是一种序列,就像列表一样。元组和列表之间的主要区别是元组不能像列表那样改变元素的值,可以简单地理解为“只读列表”。元组使用小括号()将数据包含起来,而列表使用方括号。 4元组 元组的主要作用是作为参数传递给函数调用、或
2、是从函数调用那里获得参数时,保护其内容不被外部接口修改。5创建元组 空元组由没有包含任何内容的一对小括号表示:( )( ) 特别要注意的是:要编写包含单个值的元组,值后面必须加一个逗号: (12,)(12,)6包含多个元素的元组 如果我们希望创建一个包含多个值的元组,我们可以这样做: (1,2,3,4,5,6)(1, 2, 3, 4, 5, 6) 同时,元组中的数据项不需要具有相同的数据类型: (name,number,2008,2017)(name, number, 2008, 2017)7访问元组中的数据 我们可以使用变量来存放元组数据,还可以使用索引或分片来访问元组中的值,例如: tup
3、 = (1,2,3,4,5) tup0 #索引访问,从零开始1 tup45 tup-1 #反向读取,读取倒数第一个元素5 tup1:4 #使用分片可以访问元组的一段元素(2, 3, 4) tup1:(2, 3, 4, 5)8元组的连接 元组中的元素值是不允许修改的,但可以使用多个现有元组来创建新的元组: tup1 = (1,2,3,4,5) tup2 = (a,b,c,d,e) tup3 = tup1 + tup2 tup3(1, 2, 3, 4, 5, a, b, c, d, e) 通过创建新的元组,我们就可以得到我们想要的元组数据了。9删除元组 元组中的元素值是不允许删除的,但我们可以使用
4、del语句来删除整个元组: tup = (1,2,3,4,5) del tup tupTraceback (most recent call last): File , line 1, in tupNameError: name tup is not defined10常用元组函数函数名函数功能描述cmp(tuple1,tuple2)比较两个元组中的元素len(tuple)返回元组长度max(tuple)返回元组中的最大值min(tuple)返回元组中的最小值tuple(seq)把序列转换为元组11列表 列表是Python中最常用的数据结构,一个列表中也可以存放多个数据,列表与元组的主要区别是
5、列表可以改变元素的值。 12创建列表 创建一个列表,使用方括号 将用逗号分隔的元素括起来即可: list1 = 1,2,3,4,5 list11, 2, 3, 4, 5 列表中的元素也可以是不同的数据类型: list2 = 1,2,3,a,b,c list21, 2, 3, a, b, c13访问列表中的数据 和元组一样,我们也可以使用索引或分片访问列表中的元素: list23a list23:6a, b, c14列表元素复制 我们可以将列表数据通过赋值存放到单个变量中,然后通过索引值对列表特定位置元素进行赋值: list2 = 1,2,3,a,b,c list21, 2, 3, a, b,
6、c list22 = 4 #将列表中数字3用数字4替换 list21, 2, 4, a, b, c list25 = d#将字符c用字符d替换 list21, 2, 4, a, b, d15 还可以通过分片将列表中的一部分元素赋值给新的变量: char = a,b,e,f char2: = c,d chara, b, c, d16 除了普通的赋值,列表分片赋值语句可以在不需要替换任何原有元素的情况下插入新的元素: number = 1,5,6 number1:1 = 2,3,4 number1, 2, 3, 4, 5, 6 以此类推,通过分片赋值还可以实现删除列表中元素的操作: number
7、= 1, 2, 3, 4, 5, 6 number1:4 = #结果和del number1:4相同 number1, 5, 617删除列表中的元素 有时,我们需要删除列表中的数据,我们可以使用del命令来完成,例如: list2 = 1,2,3,a,b,c del list25 list21, 2, 3, a, b18列表的append方法 如果你想往现有的列表中追加新的元素,可以通过使用列表的append方法,例如: name = Zhao,Qian,Sun,Li name.append(Zhou) nameZhao, Qian, Sun, Li, Wang name.append(Wu,
8、Zheng) #使用append方法,每次只能在列表末尾追加一个元素Traceback (most recent call last): File , line 1, in name.append(Zhou,Wu)TypeError: append() takes exactly one argument (2 given)19列表的extend 方法 通过列表的extend方法可以将新列表扩展到原有列表中,例如: name = Zhao, Qian, Sun, Li name1 = Zhou,Wu,Zheng,Wang name.extend(name1) nameZhao, Qian, S
9、un, Li, Zhou, Wu, Zheng, Wang20列表的insert方法 通过列表的insert方法,可以将新元素插入到列表指定位置: number = 1,2,3,5,6,7,8 number.insert(3,4) #第一个值3是索引,第二个值4为要插入的值 number1, 2, 3, 4, 5, 6, 7, 821列表的index方法 列表中的index方法可以找出某个值的第一个匹配项的索引值,如果列表中不包含你要找的数据,Python会给出相应的报错信息,例如: name = Zhao,Qian,Sun,Li,Zhao name.index(Zhao)0 name.ind
10、ex(Wang)Traceback (most recent call last): File , line 1, in name.index(Wang)ValueError: Wang is not in list22列表的count方法 列表中的count方法可以用来统计某个元素在列表中出现次数: list3 = a,b,c,d,e,f,e list3.count(e)223列表的pop方法 列表中pop方法可以移除列表中的某个元素(默认是最后一个元素),并返回该元素的值: number = 1,2,3 number.pop()3 number1, 2 number.pop(0)1 num
11、ber224列表的remove方法列表中的remove方法可以用来移除列表中的某个元素的第一个匹配项,与index方法一样,如果没有找到相应的元素,Python则会产生报错,例如: char = a,b,c,a char.remove(a) charb, c, a char.remove(d)Traceback (most recent call last): File , line 1, in char.remove(d)ValueError: list.remove(x): x not in list25列表的reverse方法 列表reverse方法将列表中的元素反向放置,这个操作也被称
12、为逆置: number = 1,2,3,4,5,6 number.reverse() number6, 5, 4, 3, 2, 126列表的sort方法 列表的sort方法可以对列表进行排序,默认的排序方式为从小到大: number = 3,2,1,5,4,6 number.sort() number1, 2, 3, 4, 5, 627常用列表函数函数名函数功能描述cmp(list1,list2)比较两个列表中的元素len(list)求列表中元素个数max(list)求列表中元素的最大值min(list)求列表中元素的最小值list(seq)将序列转换为列表28字符串 字符串或串(String
13、) 是由数字、字母、下划线组成的一串字符,用一对引号包含。它是编程语言中表示文本的数据类型。 通常以串的整体作为操作对象,如:在串中查找某个子串、求取一个子串、在串的某个位置上插入一个子串以及删除一个子串等。两个字符串相等的充要条件是:长度相等,并且各个对应位置上的字符都相等。29字符串赋值 字符串是 Python 中最常用的数据类型。我们可以使用单引号()或者双引号()来表示字符串。 创建字符串很简单,只要为变量赋值即可。如: var1 = Hello World! var2 = python30截取字符串 Python中字符串,可以使用方括号 来截取访问字符串,如下: var1 = Hel
14、lo World! var10H var11:5ello var15: World!31连接字符串 连接多个字符串成为一个新的字符串,这将会在原字符串的基础上连接其他字符串形成一个新字符串,例如: var1 = Hello World! var2 = python var1 = var1 + var2 var1Hello World!python32格式化字符串 Python 支持格式化字符串的输出,基本的用法是将一个字符串插入到另外一个有字符串格式符 % 的字符串中。例如: print My name is %s % (Tom)My name is Tom 在%左侧放置需要格式化的字符串,右
15、侧放置希望格式化的值。这个值可以是字符串或数字,或者元组、字典。格式化字符串的%s部分称为格式说明符,它们标记了需要插入转换值的位置。上例中的s表示值会被转换为字符串。 33格式符号的含义格式说明符含义%c格式化单个字符%s格式化字符串(使用str转换任意Python对象)%d格式化带符号的十进制整数%u格式化不带符号的十进制整数%o格式化不带符号的八进制整数%x格式化不带符号的十六进制整数(小写)%X格式化不带符号的十六进制整数(大写)%f格式化十进制浮点数%e科学计数法格式化浮点数(小写)%E科学计数法格式化浮点数(大写)34字符串的find方法 使用字符串的find()方法在字符串中查找
16、子字符串,并返回子字符串所在位置的最左端索引,注意find方法并不返回布尔值,如果返回的是0,证明在索引0位置找到了子串,若没有找到该子字符串则返回-1: string = I Love Python string.find(Love)2 string.find(name)-135字符串的join方法 使用字符串的join方法,用来在队列中添加元素,需要注意的是需要添加的队列元素都必须都是字符串类型的数据,例如: seq = 1,2,3,4,5 seq1 = * seq1.join(seq)1*2*3*4*536字符串的split方法 split方法是join方法的逆方法,该方法可以将字符串分割成字符串,在不提供任何分隔符的情况下,该方法默认将空格作为分隔符: string = 1*2*3*4*5 string.split(*)1, 2, 3, 4, 537字符串的strip方法 strip方法可以去除字符串两端的空格: string = I Love Python string.strip()I Love Python38字符串的lower和upper方法 使用字符串的lower()