3.2.2 count
count方法统计某个元素在列表中出现的次数:
3.2.3 extend
extend方法可以在列表的末尾一次性追加另一个序列中的多个值。
注意:extend方法和连接操作(+)最主要的区别在于:extend方法修改了被扩展的序列,而连接操作会返回一个全新的列表。
3.2.4 index
index方法用于从列表中找出某个值第一次匹配项的索引位置:
当匹配项没有被找到时,会引发一个异常。
3.2.5 insert
insert方法用于将对象插入到列表中:
上面最后一个例子中通过分片赋值实现插入,但是可读性不如insert。
3.2.6 pop
pop方法会移除列表中的一个元素,并且放回该元素的值,它是唯一一个既能修改列表又能返回元素值的列表方法:
3.2.7 remove
remove方法用于移除列表中某个值的第一个匹配项:
可以看到只有第一次出现的值被移除了,而不在列表中的值是不会移除的。
3.2.8 reverse
reverse方法将列表中的元素反向存放:
3.2.9 sort
sort方法用于在原位置对列表进行排序,意味着改变原来的列表,而不是简单地返回一个已排序的列表副本。
如果想要得到一个排序而不改变原来的数值,那就需要先赋值再排序:
注意:上面的例子中赋值使用的是y=x[:],分片是一种很有效率的复制整个列表的方法。
如果简单地把x赋值给y是没有的(y=x),因为这样做就让x和y指向同一个列表了。
另一种获取已排序列表副本的方法是使用sorted函数:
3.2.10 高级排序
如果希望元素能够按照特定的方式进行排序,那么可以通过compare(x,y)的形式自定义比较函数。内建cmp函数提供了比较函数的默认实现方式:
sort方法有另外2个可选参数-key和reverse。要使用它们,那就要通过名字来指定。
4.元组:不可变序列
创建元组的语法很简单:如果你用逗号分隔了一些值,那么你就自动创建了元组。
如上面最后一个例子,如果要实现一个包括一个值的元组,必须在数值后面加一个逗号。
4.1 tuple函数
tuple将一个序列作为参数并把它转换为元组,如果参数是元组,那么该参数就会被原样返回:
4.2 基本元组操作
元组其实并不复杂,除了创建元组和访问元组元素之外,也没有太多其他操作:
元组的分片还是元组,就像列表的分片还是列表一样。
4.3 那么,意义何在
元组是不可替代的:
1)元组可以在映射中当作键使用,而列表不行。
2)元组作为很多内建函数和方法的返回值存在。