1、第4章 序列:字符串、列表和元组 本章将介绍序列类型,它们的成员都是有序排列的,并且可以通过下标偏移量访问到它们的一个或者多个成员。这种序列类型包括字符串、列表和元组类型4.1 字符串 字符串是一种有序的字符集合,用于表示文本数据。字符串中的字符可以是ASCII字符、各种符号以及各种Unicode字符。严格意义上,字符串属于不可变序列,意味着不能直接修改字符串。字符串中的字符按照从左到右的顺序,支持索引、分片等操作。4.1.1 字符串的表示和创建 Python字符串常量可用下列多种方法表示。单引号:a、123、abc。双引号:“a”、“123”、“abc”。3个单引号或3个双引号:Python
2、 code、“”“Python string”“”,三引号字符串可以包含多行字符。带r或R前缀的Raw字符串:rabcn123、Rabcn123。字符串都是str类型的对象,可用内置的str函数来创建str字符串对象。4.1.2 4.1.2 字符串基本操作字符串基本操作 字符串基本操作包括求字符串长度、包含性判断、连接、迭代、索引和分片以及转换等。1求字符串长度 字符串长度指字符串中包含的字符个数,可用len函数获得字符串长度。2包含性判断 字符串为字符的有序集合,所以可用in操作符判断字符串包含关系。4.1.2 4.1.2 字符串基本操作字符串基本操作 3字符串连接 字符串连接是把多个字符串
3、按顺序合并成一个新的字符串。4字符串迭代 可用for循环迭代处理字符串。5字符串索引和分片 字符串作为一个有序的集合,其中的每个字符可通过偏移量进行索引或分片。字符串中字符按从左到右的顺序,其偏移量依次为0,1,2,len-1(最后一个字符偏移量为长度减1);按从右到左的顺序,偏移量取负值,依次为-len,-2,-1。6字符串转换 可用str函数将数字转换为字符串。4.1.3 4.1.3 字符串方法字符串方法 1count(sub,start,end)返回子字符串sub在原字符串中的start,end范围内出现的次数,省略范围时查找整个字符串。2endswith(sub,start,end)判
4、断start,end范围内的子字符串是否以sub字符串结尾。3startswith(sub,start,end)和上面方法一样,用来判断start,end范围内的子字符串是否以sub字符串开头。4find(sub,start,end)在start,end范围内查找子字符串sub,返回第一次出现位置的偏移量。没有找到时返回-1。4.1.3 4.1.3 字符串方法字符串方法 5.index(sub,start,end)与find()方法相同,只是在未找到子字符串时产生ValueError异常。此外,还有rfind(sub,start,end)和rindex(sub,start,end),它们都是返
5、回最后一次出现位置的偏移量。6format(args)字符串格式化,将字符串中用定义的替换域依次用参数args替换。7strip(chars)未指定参数chars删除字符串首尾的空格、回车符以及换行符,否则删除字符串首尾包含在chars中的字符。4.1.3 4.1.3 字符串方法字符串方法 8replace(old,new,count)从字符串开头,依次将包含的old字符串替换为new字符串,省略count时替换全部old字符串。指定count时,替换次数不能大于count。9split(sep,maxsplit)将字符串按照sep指定的分隔字符串分解,返回分解后的列表。Sep省略时,以空格作
6、为分隔符。maxsplit指定分解次数。4.2 4.2 列表列表 列表对象是一种有序序列,其主要特点如下:列表可以包含任意类型的对象,包括数字、字符串、列表、元组或其它对象。列表是一个有序序列。与字符串类似,列表中的每一项按照从左到右的顺序,可通过位置偏移量进行索引和分片。列表是可变的。首先列表长度可变,即可添加或删除列表成员。其次,列表中的对象可直接修改。列表存储的是对象的引用,类似于C/C+的指针数组,每个列表成员存储的是对象的引用而不是对象本身。4.2.1 4.2.1 列表基本操作列表基本操作 列表基本操作包括创建列表、求长度、合并、重复、迭代、关系判断、索引、分片和矩阵等。4.2.1
7、4.2.1 列表基本操作列表基本操作 创建列表 列表对象可以用列表常量或list()函数来创建。求长度 Python用len()函数获得列表长度。列表合并 加法运算可用于列表的合并。重复 乘法运算用于创建具有重复值的列表。4.2.1 4.2.1 列表基本操作列表基本操作 迭代 迭代操作可用于遍历列表中的对象。关系判断 可用in操作符判断对象是否属于列表。索引和分片 列表与字符串类似,可通过对象在列表中的位置来索引,也可以通过索引进行列表对象的修改。另外,还可以通过分片来获得列表中的部分对象,可通过分片将多个对象替换成新的对象。矩阵 列表中的对象可以是任意类型,所以可以通过嵌套列表来表示矩阵。4
8、.2.2 列表的访问、排序和反转 Python为列表对象提供了一系列处理方法,用来进行列表的访问、排序和反转。列表的访问 1添加单个对象 append()方法可在列表末尾添加一个对象。2添加多个对象 extend()方法用于在列表末尾添加多个对象,参数为可迭代对象。3在指定位置插入对象 insert()方法用于在指定位置插入对象。4按值删除对象 remove()方法用于删除列表中的指定值。如果有重复值,则删除第一个。列表的访问 5按位置删除 pop()方法可删除指定位置的对象,省略位置时删除列表最后一个对象,同时返回删除对象。6用del语句删除 可用del语句删除列表中的指定对象或分片。另外,
9、Python还提供了列表排序、反转的方法。sort()方法用于列表对象的排序。若列表对象全部是数字,则按数字从小到大排序;若列表对象全部是字符串,则按字典顺序排序;若列表包含多种类型,则会出错。4.3 元组 在Python中,元组可以看作是不可变的列表,它具有列表的大多数特点。元组常量用圆括号表示,例如:(1,2)、(a,b,abc)都是元组。元组的主要特点是:元组可以包含任意类型的对象。元组是有序的。元组中的对象可以通过位置进行索引和分片。元组的大小不能改变,既不能为元组添加对象,也不能删除元组中的对象。元组中的对象也不能改变。与列表类似,元组中存储的是对象的引用,不是对象本身。4.3.1
10、元组的创建 可以用元组常量或tuple()方法来创建元组。4.3.2 元组的访问 1迭代遍历 可以用迭代遍历元组中的各个对象。2索引和分片访问 索引和分片是通过位置对元组对象进行访问。其中索引和分片的操作方法和列表类似。3index(value,start,end)方法 index()方法用于在元组中查找指定值,未用start和end指定范围时,返回指定值在元组中第一次出现的位置;指定范围时,返回在指定范围内第一次出现的位置。4.3.3 4.3.3 元组的其它基本操作和方法元组的其它基本操作和方法 1求长度 len()函数可用于求元组长度。2元组合并 加法运算可用于合并多个元组。3重复 乘法运
11、算用于合并多个重复的元组。4关系判断 in操作符用于判断对象是否属于元组。4.3.3 4.3.3 元组的其它基本操作和方法元组的其它基本操作和方法 5矩阵 与列表类似,可以通过嵌套的方式用元组来表示不可变的矩阵。6count()方法 count()方法用于返回指定值在元组出现的次数。小 结 本章主要讲解了以下几个知识点:(1)字符串。字符串是一种不可变序列类型,可以通过在引号间包含字符的方式或者通过内建函数str()的方式创建字符串。(2)列表。与字符串不同,列表是一种可变序列类型,可以通过使用方括号,并把方括号里的每一个元素采用逗号进行分隔或者使用内建函数list()来创建列表。因为列表是可变序列类型,所以,可以改变列表的内容。改变列表的方式包括添加、修改和删除元素。(3)元组。元组和列表类似,都是序列类型,它们的元素都是用逗号分隔。元素类型可以是任意类型。区别在于:从形式上看,列表是用方括号把元素括起来,而元组是用圆括号把元素括起来。从功能上看,列表是可变序列类型,而元组是不可变序列类型。可以通过使用圆括号并把圆括号里的每一个元素采用逗号进行分隔或者使用内建函数tuple()来实现。