本章引入一个概念:数据结构。Python中,最基本的数据结构是序列。序列中每个元素被分配给一个位置,称为索引。Python中有6种内建的序列:
列表元组字符串Unicode字符串buffer对象xrange对象 最常用的是列表和元组,两者最大的区别在于列表可以修改,而元组不可以修改。list函数实现字符串到list的转换:
>>>list('hello') ['h','e','l','l','o']方法的调用方式为:对象.方法(参数) 1.append append在列表末尾添加新的元素
>>>lst = [1,2,3] >>>lst,append(4) >>>1st [1,2,3,4]2.count count 方法统计某个元素在列表中出现的次数
>>>['to','be','or','not','to','be'].count('to') >2 >>>x=[[1,2],1,1,[2,1,[1,2]]] >>>x.count(1) >13.extend extend在列表末尾一次性追加另一个序列中的多个值。
>>>a=[1,2,3] >>>b=[4,5,6] >>>a.extend(b) >>>a >[1,2,3,4,5,6]extend和连接操作’+’最大的区别在于extend修改了被扩展的序列,而连接操则不修改被扩展序列。
4.index index方法用于从列表中找出某个值第一个匹配项的索引位置。
>>>knights=['we','are','the','knights','who','say','in'] >>>knights.index('who') >45.insert insert将对象插入到列表中。
>>>numbers=[1,2,3,4,5,6,7] >>>numbers.insert(3,'four') >>>number >[1,2,3,'four',5,6,7]6.pop pop方法会 移除列表中的一个元素,默认是最后一个,并返回该元素的值。
>>>x=[1,2,3] >>>x.pop() >3 >>>x >[1,2] >>>x.pop(0) >1 >>>x >[2]7.remove remove方法用于移除列表中某个值的第一个匹配项。
>>>x = ['to','be','or','not','to','be'] >>>x.remove('be') >>>x >['to','or','not','to']8.reverse reverse将列表中的元素反向存放,改变对象值但不返回值。
>>>x=[1,2,3] >>>x.reverse() >>>x >[3,2,1]9.sort sort方法用于在原位置(对列表进行更改)对列表进行排序。sort是默认的升序排序。
>>>x=[4,6,2,1,7,9] >>>x.sort() >>>x >[1,2,4,6,7,9]sort会修改原有对象,如果不想修改原有对象可以:
>>>x=[4,6,2,1,7,9] >>>y=x[:] >>>y.sort() >>>x >[4,6,2,1,7,9] >>>y >[1,2,4,6,7,9]值得注意的是,调用x[:]是一种比较高校的复制整个列表的方法。 但是只是简单的把x赋值给y是没用的,因为这样会使x和y指向同一个列表。
>>>x=[4,6,2,1,7,9] >>>y=x >>>y.sort() >>>x >[1,2,4,6,7,9] >>>y >[1,2,4,6,7,9]另外一种获得已排序好的列表副本的方法是sorted函数:
>>>x=[4,6,2,1,7,9] >>>y=sorted(x) >>>x >[4,6,2,1,7,9] >>>y >[1,2,4,6,7,9]10.高级排序 sort方法有两个可选参数:key和reverse。如果使用元素的长度进行排序,可以使用len作为键函数:
>>>x=['aar','dkjvkdf','fdkfklf'] >>>x.sort(key=len)另一个关键字参数reverse是布尔值。
>>>x=[4,6,2,1,7,9] >>>x.sort(reverse=True) >>>x >[9,7,6,4,2,1]tuple函数以一个序列作为参数并把它转换为元组
>>>tuple([1,2,3]) >(1,2,3) >>>tuple('abc') >('a','b','c') >>>tuple((1,2,3)) >(1,2,3)使用元组的两个重要原因: - 在映射中可以当作键来使用,而列表则不行 - 元组作为很多内建函数和方法的返回值存在