Python 的序列类型是一组可以按顺序存放元素的数据容器,共同特征是支持索引、切片和迭代。在六大标准数据类型中,str、list、tuple 属于序列类型,但在可变性上有所区分:list 可变,str 和 tuple 不可变。
str(字符串)
- 本质:存放 Unicode 字符的不可变序列。一旦创建,不能修改其中的单个字符。
- 写法:单引号
'...'、双引号"..."、三引号'''...'''或"""..."""(多行字符串)。 - 常用操作:
- 拼接:
'Hello ' + 'World' - 重复:
'Hi' * 3 - 索引:
s[0]获取第一个字符 - 切片:
s[1:4]获取子串 - 成员检查:
'a' in 'abc' - 常用方法:
upper()、lower()、strip()、split()、replace()、find()、startswith()等。 - 实用要点:字符串格式化推荐 f-string,例如
f"结果是{value:.2f}",简洁高效。处理长文本拼接时,避免循环中用+,改用''.join(list_of_strings)提升性能。
list(列表)
- 本质:存放任意类型对象的可变序列,可以增删改元素。
- 写法:用方括号
[],如[1, 2, 3]、['a', 1, True]。 - 常用操作:
- 创建空列表:
[]或list() - 索引与切片:
lst[0]、lst[-1]、lst[1:3] - 修改元素:
lst[0] = 100 - 增加元素:
append(item)、insert(index, item)、extend(iterable) - 删除元素:
remove(item)、pop(index)、del lst[0] - 排序:
sort()原地排序,sorted()返回新列表 - 列表推导式:
[i*2 for i in range(5) if i%2==0]快速生成新列表。 - 实用要点:列表是 Python 中最常用的容器,适合需要频繁修改、动态增减元素的场景。注意
list作为可变类型,赋值给多个变量时会指向同一个对象,若需独立拷贝请用copy()或[:]浅拷贝。
tuple(元组)
- 本质:存放任意类型对象的不可变序列,创建后不能增删改元素。
- 写法:用圆括号
(),如(1, 2, 3)。单元素元组必须加逗号:(1,);空元组直接()。 - 常用操作:
- 索引、切片、迭代同列表。
- 因为不可变,只有
count()和index()两个方法。 - 实用要点:
- 适合表达固定集合,例如坐标
(x, y)、日期(year, month, day)。 - 可用于函数同时返回多个值:
return a, b实际上返回了一个元组。 - 作为字典的键:因为不可变,元组可以作为
dict的键,而列表不行。 - 比列表更轻量、内存占用稍小,在大量数据且只读场景下优先考虑。
三者对比速记:
| 类型 | 可变性 | 典型应用 |
|------|--------|----------|
| str | 不可变 | 文本处理 |
| list | 可变 | 动态数据集合 |
| tuple| 不可变 | 固定配置、多返回值、字典键 |
理解这三种序列类型,你就掌握了 Python 中最基础的数据组织方式。实际编码中,根据需要是否改动数据来选择 list 或 tuple,处理文本时用 str 及其丰富的方法即可。