ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# 2.1 序列概览   Python包含6种内建的序列:列表、元组、字符串、Unicode字符串、buffer对象和 xrange对象。   容器:序列,映射和集合(set)。 # 2.2 通用序列操作   索引(indexing)、分片(sliceing)、加(adding)、乘(multiplying)、检查某个元素是否属于序列的成员(成员资格)、计算序列长度、找出最大元素和最小元素的内建函数。 ## 2.2.1 索引 ![](https://box.kancloud.cn/3755eedae22a751c5f02380aa05b2b27_134x26.png) ![](https://box.kancloud.cn/18bb4e29e5cc63f0b3f097a33f983012_327x152.png) ## 2.2.2 分片   1.优雅的捷径   分片操作的实现需要提供两个索引作为边界,第一个索引的元素是包含在分片内,而第2个则不包含在分片内。   取得前三个元素:[:3]   取得后三个元素:[-3:]   2.更大的步长   [::length] ## 2.2.3 序列相加   通过加号可以进行序列的连接操作。注意:要类型相同的序列才能进行连接操作。 ![](https://box.kancloud.cn/2ff8a2cb0d42451c40b6607bead2382c_463x83.png) ## 2.2.4 乘法   用数字 * 乘以一个序列会生成新的序列,而在新序列中,原来的序列将被重复 n 次。 ![](https://box.kancloud.cn/bbfea39dd1364b743fbc0c14658977f0_658x98.png)   // 整除 得到一个整数 ## 2.25 成员资格   in ## 2.26 长度、最小值和最大值   max()   min()   len() # 2.3 列表:Python的“苦力”   列表不同于元组和字符串的地方:列表是可变的(mutable)--可以改变列表的内容,并且列表有很多有用的、专门的方法。 ## 2.3.1 list函数 ![](https://box.kancloud.cn/9cbb02f2fc1896d64e56657a5dc73bfd_469x83.png) ## 2.3.2 基本的列表操作   1.改变列表:元素赋值   2.删除元素   del name[2]   3.分片赋值   name[2:] = list('ar') ## 2.2.3 列表方法   对象.方法(参数) 1.append   append方法用于在列表末尾追加新的对象 ![](https://box.kancloud.cn/20a1e4647e26348525274e3d824a2d37_167x63.png) 2.count   count方法统计某个元素在列表中出现的次数: ![](https://box.kancloud.cn/979f852d21c136ffc346f341400fa978_450x98.png) 3.extend   extend方法可以在列表的末尾一次性追加另外一个序列中的多个值。 ![](image/screenshot_1490774030783.png)      extend与 + 的区别 4.index   index方法用于从列表中找出某个值第一个匹配项的索引位置。 ![](https://box.kancloud.cn/e3c24c0747b057895d47921ebccbca9b_514x101.png)   防止报错,应该先判断是否存在该项。 5.insert   insert方法用于将对象插入到列表中。 ![](https://box.kancloud.cn/56ef83cb47c22409394c94f76294f772_272x55.png)   也可以用分片赋值来实现。 6.pop   pop方法会移除列表中的一个元素(默认是最后一个),并且返回该元素的值。 ![](https://box.kancloud.cn/a0a7269b11603f84166d932f0ea43653_218x174.png)   pop方法是唯一一个既能修改列表又返回元素值(坠子None)的列表方法。   使用pop方法可以实现一种常见的数据结构--栈(LIFO,后进先出)。 7.remove   remove方法用于移除列表中某个值的第一个匹配项 ![](https://box.kancloud.cn/1481b5b37f8ca68689c87f96397dce73_380x111.png)   如果移除项不存在,会报错,这里要注意了。 8.reverse   reverse方法将列表中的元素反向存放。 ![](https://box.kancloud.cn/e636fea3b2843dd912ccc42abc1faf7b_394x150.png) 9.sort   sort方法用于在原位置对列表进行排序。 ![](https://box.kancloud.cn/ca420103decf5ea3fca63548f8d5745c_248x137.png)   x.sort(),对原来序列进行排序,不返回值;sorted(x),不改变原来序列,返回一个排序后的新序列。 10.高级排序 ![](https://box.kancloud.cn/3b4ba2c9021944f5d70f57a50ea35196_444x292.png)   sort 的可选参数:cmp(默认),key,reverse # 2.4 元组:不可变序列   元组与列表一样,也是一种序列。唯一不同是元组不能修改。 ![](https://box.kancloud.cn/12a84e9884a2ca678a71d9ada69ea342_145x211.png)   元组的创建方法。 ## 2.4.1 tuple函数   tuple 函数的功能与 list 函数基本上是一样的:以一个序列作为参数并把它转换为元组。 ![](https://box.kancloud.cn/e2f322647d7659fe7a99aa30f7772ac7_191x83.png) ## 2.4.2 基本元组操作   元组其实并不复杂--除了创建元组和访问元组元素之外,也没有太多其他操作,可以参照其他类型的序列来实现。 ![](https://box.kancloud.cn/3da1fdc44d1435bb108011dc31b25774_137x70.png) ## 2.4.3 那么,意义何在   元组是不可替代的:   元组可以在映射(和集合的成员)中当作键使用--而列表则不行。   元组作为很多内建函数和方法的返回值存在,也就是说你必须对元组进行处理。只要不尝试修改元组,那么,“处理”元组在绝大多数情况下就是把它们当作列表来进行操作(除非需要使用一些元组没有的方法,例如index和count) # 2.5 小结   新函数: cmp(x,y): 比较两个值 len(seq): 返回序列的升序 list(seq): 把序列转换成列表 max(args): 返回序列或者参数集合中的最大值 min(args): 返回序列或都参数集合中的最小值 reversed(seq): 对序列进行反射迭代 sorted(seq): 返回已排序的包含seq所有元素的列表 tuple(seq): 把序列转换成元组