python序列
序列是一块用于存放多个值的连续内存空间,并且按照一定顺序排列,,每一个值(元素)都分配一个数字,称为索引或位置,通过该索引可以取出对应的值。
python中,序列结构主要有列表、元祖、集合、字典和字符串,其中集合和字典不支持索引、切片、相加和相乘的操作。
1、索引:
序列中每个元素都有一个编号,称为索引,索引是从0开始递增的,即下标为0表示第一个元素,下标为1表示第二个元素,以此类推。

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

注意:在使用负数作为索引的时候,是从-1开始的,不是从0开始
通过索引可以访问序列中的任何元素,访问序列的第二个和第五个元素,如图:

2、切片:
切片可以访问一定范围内的元素,通过切片可以生成新的序列,语法格式如下:
sname[start : end : step]
参数说明:
- sname:表示序列名称。
- start:切片的起始位置(包括该位置),如果不指定默认从0开始。
- end: 切片的结束位置(不包含该位置),如果不指定默认为序列的长度。
- 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() | 反向序列中的元素 |


