Python基础教程Ch2-列表和元组

第2章 列表和元组

![](http://picture-repository-of-heamon7.qiniudn.com/第2章 Python-列表和元组.png)

第2章 列表和元组

2.1 序列概览

Python包含6种内建的序列:列表,元组,字符串,Unicode字符串,buffer对象和xrange对象。

列表可以修改,元组不可修改。因此元组可以作为字典的键,而列表不可以。

序列(如列表和元组),映射(如字典),集合是Python内的容器,可以包含其他对象。因此序列也可以包含其他序列。

2.2 通用序列操作

通用序列操作包括:索引,分片,加,乘,迭代,成员资格,计算长度,找出最大最小值等。

字符串(序列)字面值能够直接使用索引,而不需要一个变量引用他们,如'Hello'[1]

分片操作用来访问一定范围内的元素。第二个索引的元素不包含在分片中。分片中的索引可以置空,表示访问到末端。步长可以是负值,此时索引的第一个值大于第二个,从右到左提取元素。步长不能为0

相同类型的序列可以直接使用‘+’相加

用数字乘以一个序列会形成新的序列,原序列重复相应次数

检查一个值是否在序列中,可以使用 in 运算符

len()函数返回序列长度,max(),min()函数的参数个数被重载

2.3 列表:Python的“苦力”

list()函数可以把一个序列转换成列表,字符串的join方法可以把一个由字符串组成的列表组合起来

列表特有的方法:元素赋值,元素删除,分片赋值以及列表方法

不能为一个位置不存在的元素赋值

删除元素用del语句,如del names[2]

分片赋值,可以使用与原序列不等长的序列将分片替换,也可以用来插入和删除元素

列表方法

append方法用于在末尾追加新的对象,无返回值

a.append(a)好奇怪??

count方法统计某个元素在列表中出现的次数,返回次数

extend方法在列表的末尾一次追加另一个序列的多个值,无返回值

index方法用于从列表中找出某个值第一个匹配的索引位置,返回索引,不存在时会引发异常

insert方法用于将对象插入列表,如a.insert(3,b),无返回值

pop方法会移除列表中的一个元素(默认是最后一个),并返回该元素的值.使用pop方法和append方法可以模拟栈的操作

remove方法用于移除列表中某个值得第一个匹配项,无返回值

reverse方法将列表中的元素反向存放。无返回值。类似的reversed函数返回一个迭代器对象,原列表不变

sort方法用于在原位置对列表进行排序,无返回值。类似的sorted函数返回一个列表,原列表不变

高级排序

列表的sort方法有三个默认关键字参数:cmp,key,reverse

关键字key和cmp类似,必须提供一个在排序过程中使用的函数, cmp函数用来确定大小

key的函数是为每一个元素创建一个键,然后所有元素根据键来排序。reverse参数是简单地布尔值

三个参数都可以用于sorted函数

2.4 元组:不可变序列

用逗号分隔一些值,就自动创建了元组,实现只有一个值的元组就是在该值后加一个逗号

tuple()函数以一个序列作为参数并把它转换为元组

元组很多情况和列表通用,元组的独特之处在于在映射中作为键使用,并作为很多内建函数和方法的返回值存在

;