Python的序列1–序列的简介
1.序列的简介
序列是Python中的重要组成部分,也是一种数据结构,那么什么是序列呢?按照定义来说,序列就是一个对象里面的所有元素全部按照一定的顺序进行排列,并且可以通过下标索引,访问到该对象的一个或者几个元素。
那么序列又包括什么呢?在Python中序列值包括三种:字符串,列表,元组。请注意,数值型的对象是不属于序列的,我们说到序列就是单只这三种。也要注意的是:我们说序列并不是单只列表,而应该是包括列表在内的,符合定义中的两条原则:1,顺序排列;2,通过下标索引,可以访问成员
2.序列的操作运算
既然我们已经介绍过什么是序列,以及有哪些对象是序列,那么接下来,我们就要讨论的是,我们可以对序列做什么?
2.1标准类型操作符
对象值得逻辑比较,对象身份通过“==”比较,布尔值比较
2.2序列类型操作符
序列类型操作符是指适用于序列的各种操作,就像我们手里有一部叫做序列的手机,那么我们可以对这一部叫做序列的手机做什么操作呢?下面将根据优先级先后的顺序进行介绍,值得注意的是,这里的所有操作适合于序列里面的所有类型。
成员关系操作符: in, not in
成员关系操作符用来判断一个对象是不是包含在另外一个对象里面,结果是返回的一个布尔值,包含的时候返回True,不包含的时候返回False。
>>>"a" in "ab"True>>>"a" not in "bc"True
连接与重复操作符” + “, ” * “
这两个操作符很有意思,第一个”+“,是连接操作符,是将连个序列相加,合并成一个序列,值支持同种类型的相加,即字符串只能和字符串相加,字符串不能和列表相加。
第二个” * “,是将一个序列对象拷贝很多份,注意区分序列的* 和数值里面的*
切片操作符[ ], [ : ], [ : : ]
切片操作根据里面的参数返回一个或多个成员。最可以接收3个参数。当参数只有1个时:sequence[ i ]返回名为sequence的序列的第i+1个元素。当参数有两个的时候,sequence[2 : 5]返回从2开始到4的三个元素的序列,从第一个参数开始,到第二个参数之前结束。当参数为三个的时候,sequence[1 : 9 : 2]返回以步长为2的从1开始到9结束的序列。
>>>ls = [1, 2, 3, 4, 5, 6, 7, 8, 9]>>>ls[5]6>>>ls[2:5][3, 4, 5]>>>ls[1:9:2][2, 4, 6, 8]
同样的将ls换为字符串和元组,这里的操作方式和返回的值是一样一样的。
2.3内建函数
类型转换
序列里面只包含字符串,列表,元组这三种,所以序列里面的类型转换也就只有这三种,分别是:list(iter)把可迭代对象转换成列表;str(obj)把对象obj转化为字符串; tuple(iter)把可迭代对象转化为元组
Operatioal
序列还可以有一下操作,都是内建函数,可以直接调用
len(seq):返回seq的长度
max(iter) min(iter) : 返回可迭代对象的最大值,最小值
zip([it0, it1, it3]): 返回一个列表,列表里面是元组,元组是由每个参数相同位置上的元素组成
reversed(seq): 接收一个序列作为参数,返回一个倒序的序列
enumerate(): 对可迭代对象中的每个项进行成对迭代,第一个是数,第二个是项
>>>s = ‘foobar‘>>>len(s)6>>>max(s)r>>>t = ‘mother‘>>>zip(s, t)[(‘f‘, ‘m‘), (‘o‘, ‘o‘), (‘o‘, ‘t‘), (‘b‘, ‘h‘), (‘a‘, ‘e‘), (‘r‘, ‘r‘)]>>>for i, t in enumerate(s): print i, t 0 f1 o2 o3 b4 a5 r