python序列

序列是一块用于存放多个值的连续内存空间,并且按照一定顺序排列,,每一个值(元素)都分配一个数字,称为索引或位置,通过该索引可以取出对应的值。

python中,序列结构主要有列表、元祖、集合、字典和字符串,其中集合和字典不支持索引、切片、相加和相乘的操作。

1、索引:

序列中每个元素都有一个编号,称为索引,索引是从0开始递增的,即下标为0表示第一个元素,下标为1表示第二个元素,以此类推。

索引也可以是负数,从右侧第一个开始,索引为-1,表示最后一个元素,第二个元素的索引为-2,以此类推。

注意:在使用负数作为索引的时候,是从-1开始的,不是从0开始

通过索引可以访问序列中的任何元素,访问序列的第二个和第五个元素,如图:

2、切片:

切片可以访问一定范围内的元素,通过切片可以生成新的序列,语法格式如下:

sname[start : end : step]

参数说明:

  1. sname:表示序列名称。
  2. start:切片的起始位置(包括该位置),如果不指定默认从0开始。
  3. end: 切片的结束位置(不包含该位置),如果不指定默认为序列的长度。
  4. step:切片的步长,不指定默认为1,如果省略,最后一个冒号也可以省略。

注意:在进行切片操作时,如果指定了步长,那么将按照该步长遍历元素,否则将一个一个遍历。

例如:通过切片获取列表中第2到6的元素,再获取第一个、第三个、第五个、第七个元素,如图:

如果要打印整个序列,只需要将start和end省略,但是中间的冒号保留即可,如上图。

3、序列相加:

python中,支持两种相同类型的序列进行相加操作,即将两个序列进行连接,不会去除重复的元素,使用运算符(+)实现。

例如:将两个列表进行相加,如图:

注意:相同类型的序列指的是同为列表,或者同为元祖、集合等,序列中的元素可以不同。

例如:将两个列表相加,其中一个列表为字符串,一个为数字,如图:

不能将列表和元祖相加,也不能将列表与字符串相加

例如:下面将列表与字符串相加将会报错,如图:

4、乘法:

在Python中,使用数字n乘以一个序列,将会生成一个新的序列,新序列的内容为原来的序列被重复n次的结果。

例如:将列表abc乘以3,得到的结果将是原内容重复三次,如图:

也可以直接在原列表位置乘以3,并打印结果,如图:

可通过这种方法实现初始化指定长度列表的功能,例如,指定长度为5的列表,列表中的每个元素都是None,如图:

5、检查某个元素是否是序列中的成员:

在Python中,使用in关键字检查某个元素是否为序列中的成员,语法格式如下:

value in sequence

其中value表示要检查的元素,sequence表示指定的序列。

例如:检查元素var是否在序列abc中,如图:

上图中的代码执行后,返回结果为True,表示序列中存在此元素。

在python中,也可以通过not in 检查某个元素是否不在某个序列中,如图:

6、计算序列的长度、最大值、最小值:

在Python中使用内置函数len()来计算序列的长度,使用max()函数来计算序列中的最大值,使用min()函数来计算序列中的最小值。

例如:返回序列中的长度、最大值以及最小值,如图:

Python还提供了其他函数,如下表:

函数作用
enumerate()将序列组合为一个索引序列,多用于for循环中
list()将序列转换为列表
str()将序列转换为字符串
sum()计算元素的和
sorted()对元素进行排序
reversed()反向序列中的元素

标签