组合数据类型包括三大类,分别是序列类型(元组类型、列表类型)、集合类型、映射类型(字典类型)。
序列跟数学中的数列相对应,它是一串有序的元素向量,可以通过下标索引找到序列中的某个元素。例如,可以把一所学校看作一个序列,那么学校里的每间教室都可以看作这个序列中的元素。而教室号就相当于索引,可以通过教室号找到相应的教室。在实际应用中,序列类型比集合类型有更高的使用频率。
序列常用的操作符和函数如下。
· s[i]:索引,返回序列s中的第i个元素,i是序列的序号。
· s[i:j:k]:切片,返回序列s中从i到j以k为步长的子序列(s[::-1]表示序列取反)。
·s+t:连续两个序列s和t相加。
·s*n或n*s:复制序列n次。
· x (not)in s:如果x(不是)是序列中的元素,则返回True;否则返回False。
· len(s):返回序列s的长度。
· min(s):返回序列s中的最小元素,s中的元素应该可以比较;如果元素不可以比较,则会报错。
· max(s):返回序列s中的最大元素,s中的元素应该可以比较;如果元素不可以比较,则会报错。
· s.index(x)/s.index(x,i,j):返回序列s中从i到j第一次出现元素x的位置。
· s.count(x):返回序列s中出现元素x的总次数。
序列中的序号又叫索引(Indexing),这个索引可以是从左向右计数的,即从0开始递增,如A[0]~A[5];也可以是从右向左计数的,即从-1开始递减,如A[-6]~A[-1]。
注意
在采用负数作为索引下标时,是从-1开始的,而不是从0开始的,即最后一个元素的下标为-1,这是为了防止与第一个元素重合。
切片(Slicing)操作针对的对象是序列中的元素,它访问的不仅仅是单个的个体元素,而是在一定范围内的元素。通过切片操作可以生成一个新的序列。它的使用格式在前面已经有所提及,即s[i:j:k]。其中,s代表序列的名称;i表示切片的开始位置(包括该位置),如果不指定,则默认为0;j表示切片的截止位置(不包括该位置),如果不指定,则默认为序列的长度;k表示切片的步长,如果省略,则默认为1。当省略步长参数时,最后一个冒号也可以省略。
网友评论