第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()函数以一个序列作为参数并把它转换为元组
元组很多情况和列表通用,元组的独特之处在于在映射中作为键使用,并作为很多内建函数和方法的返回值存在