python最基本的数据结构是序列。序列顾名思义,就是按照顺序排列的一些对象,注意这些对象可以是不同类型(甚至可以是序列),这点与C++等语言中的数组不一样。
常见的内建序列包括列表、元组和字符串。现在我们将学习列表和元祖,字符串单独一篇。
序列通用的操作就是:
索引
也就是下标[],取值,python中的索引下标可以是负整数,表示从右往左索引。[-1]表示最后一个元素
分片
[l:r],就是取一个区间的值,正常情况下,必须是l<r,否则取得值为空值。注意,区间为[l,r),即左开右闭。
步长
[l:r:step],其中step表示在[l,r)区间每step取一个值,step可以为负整数,但此时得l>r。
序列相加
其实就是一个连接操作,不过的相加的两个序列必须是同类型的序列。
乘法
序列与整数x相乘,就是重复序列中的元素,产生新的序列,注意如果x<=0,那么结果是一个空的序列。
成员资格
in 操作符表示一个对象是否属于指定的序列,返回值为bool类型,如果属于返回True,否则返回False(注意是首字母大写!)
长度、最小值、最大值
内建函数len、min、max分别返回序列的长度、最小值、最大值。
列表:
列表元素用[]包含。
列表是可迭代的对象,所以可以用内建函数list将列表中的元素打印出来。
列表的复制:
x=[1,2,2]
x[2] = 3
分片复制:
x[1:1]=[4,5,6]
元素的删除:
del x[2]
也可以del x,即删除列表x。
常见的列表方法(我在py2.7中,发现列表也就这么多对外的方法o(╯□╰)o):
count,返回列表中某个元素出现的次数
append,在列表后添加一个对象,直接修改原列表。
extend,在列表后添加另一个列表中的元素(也可以是元祖、字符串等序列)。
index,返回指定对象在列表中的下标,如果不存在就引发一个异常(感觉这点不太好。。。)
insert , 在指定位置插入指定的对象。
pop,删除指定位置的元素,并返回删除的元素,若未指定,则删除最后一个元素。
remove,删除指定对象,如果对象不在列表中,则引发异常。
sort,排序,默认升序排序,直接在原列表上排序。
元组
就是不可改变的列表,用()。注意只有一个元素的元组的表示,(1,),必须在元素后添加一个,号。
元组也可以作乘法,和列表一样。
内建函数tuple和list基本功能一样,将一个序列作为参数转化为元组。
元组也可以索引取值、分片取值,但是不能改变其中的元素值。