Python中的“序列”是一个广义术语,用于描述一种特定的数据结构,它具备以下共同特征:
-
有序性:序列中的元素按照特定的顺序排列,每个元素在序列中都有一个确定的位置,即索引。
-
索引访问:通过索引来访问序列中的元素。索引通常是整数,从0开始计数。例如,对于序列
s
,s[0]
返回第一个元素,s[1]
返回第二个元素,依此类推。 -
切片:可以通过切片语法获取序列的一部分,如
s[start:stop:step]
。start:表示切片的开始索引位置(包括该位置),此参数也可以不指定,会默认为 0,也就是从序列的开头进行切片;end:表示切片的结束索引位置(不包括该位置),如果不指定,则默认为序列的长度;step:表示在切片过程中,隔几个存储位置(包含当前位置)取一次元素,也就是说,如果 step 的值大于 1,则在进行切片去序列元素时,会“跳跃式”的取元素。如果省略设置 step 的值,则最后一个冒号就可以省略。 -
通用操作:序列支持一系列通用操作,包括但不限于:
- 长度:使用内置函数
len()
获取序列中元素的数量。 - 成员资格:使用
in
关键字检查某个元素是否在序列中。 - 连接:使用
+
运算符将两个同类型序列拼接在一起。 - 重复:使用
*
运算符将序列与一个整数相乘,生成原序列重复若干次的新序列。 - 迭代:可以直接在
for
循环中遍历序列的所有元素,无需显式调用迭代方法。 - 排序:sorted() 对元素进行排序。
- 反向序列:reversed() 反向序列中的元素。
- 长度:使用内置函数
在 Python 中,序列类型包括字符串、列表、元组、集合和字典,但比较特殊的是,集合和字典不支持索引、切片、相加和相乘操作。
Python中的序列类型主要有以下几种:
-
列表(List):用方括号
[]
表示,是一种可变序列。列表可以包含任意类型的元素,包括其他列表(形成嵌套结构),并且支持动态添加、删除、修改元素。列表是Python中最常用的序列类型之一,适用于需要频繁变动数据结构的场景。 -
元组(Tuple):用圆括号
()
表示,是一种不可变序列。一旦创建,其内容不能更改。虽然不能直接修改元组中的元素,但可以通过组合现有元组生成新的元组。元组通常用于表示固定不变的数据集合,或者作为函数返回多个值的方式。 -
字符串(String):用单引号
'
或双引号"
包围,由零个或多个字符组成,不可变。字符串是字符序列,支持所有序列操作,如索引、切片、连接等。字符串主要用于处理文本数据。 -
Unicode字符串(Unicode String):在Python 3中,普通字符串已经是Unicode编码的,与之对应的是Python 2中的
unicode
类型。Unicode字符串能够表示世界上大多数语言的字符集,与字符串类似,也是不可变的字符序列。 -
其他序列类型:虽然不那么常见,Python还提供了其他序列类型,如字节数组(Bytes Array)、缓冲区(Buffer)、Xrange对象(在Python 3中已被更高效的
range
类型取代)。这些类型通常在处理二进制数据、高效生成数值范围时使用。
字符串也是一种常见的序列(所以以下的例子以字符串作为),它也可以直接通过索引访问字符串内的字符。