1. 分类
Python 序列(Sequence)是指按特定顺序依次排列的一组数据,它们可以占用一块连续的内存空间,也可以分散到多块内存中。Python 序列包括字符串(string)、列表(list)、元组(tuple)、字典(dict)和集合(set)。
列表和元组用于顺序存储数据,所有元素占用一块连续的内存空间,每个元素都有自己的索引,可以通过索引直接访问特定元素。它们的区别在于:列表是可以修改的,而元组是不可修改的。
字典和集合用于无序存储数据,元素占用不同的内存空间,字典元素以键值对的形式存储。
字符串是一种常见的序列,可以通过索引直接访问其中特定字符。
2. 通用操作
集合和字典不支持索引、切片、相加和相乘操作。
2.1 索引
在序列中,每个元素都有固定的序号(索引),可以通过索引直接访问元素,格式为 s[i]
。
Python 同时支持正索引和负索引。正索引从 0
开始递增,从左向右计数,0
表示序列第一个元素,n-1
表示序列最后一个元素,取值范围为 [0, n-1]
。负索引从-1开始递减,从右向左计数,-1
表示序列最后一个元素,-n
表示序列第一个元素,取值范围为 [-n, -1]
。
2.2 切片
切片可以访问一定范围内的元素,同时生成一个新的序列(子序列),格式为 s[start : end : step]
。
其中,start
表示切片的开始索引位置(包括该位置),默认值 0
;end
表示切片的结束索引位置(不包括该位置),默认值 n
;
step
表示切片步长,即间隔几个存储位置(包含当前位置)取一次元素,默认值 1
,如果省略设置该值,则最后一个冒号可以省略。
2.3 相加
Python 支持两种类型相同的序列使用 +
运算符相加,对两个序列进行连接,但不会去除重复的元素,格式为 a + b
。
2.4 相乘
Python 支持序列乘以整数 n
生成新序列,其内容为原来序列被重复 n
次的结果,格式为 a * 3
。对于非正整数,新序列为空。
列表可以通过乘法操作,实现初始化指定长度的功能。例如,
list = [None] * 5
。
2.5 判断成员
Python 提供 in
和 not in
关键词检查元素是否包含在序列中,格式为 value in sequence
。其中,value 表示要检查的元素,sequence 表示指定的序列。
3. 内置函数
函数 | 功能 |
---|---|
len() | 计算序列的长度,即返回序列中包含多少个元素 |
max() | 找出序列中的最大元素 |
min() | 找出序列中的最小元素 |
list() | 将序列转换为列表 |
str() | 将序列转换为字符串 |
sum() | 计算元素和 |
sorted() | 对元素进行排序 |
reversed() | 反转元素 |
enumerate() | 将序列组合为一个索引序列,多用在 for 循环中 |
对序列使用 sum() 函数时,做加和操作的必须都是数字(例如,
sum(str) + 1
),不能是字符或字符串(例如,"sum: " + sum(str)
),否则该函数将抛出异常,因为解释器无法判定是要做连接操作,还是做加和操作。