7-Python 中序列的概念和类型
在 Python 中,序列(Sequence)是指“有序的元素集合“。(说白了就是把一堆东西按顺序排好队。)
序列的主要特点:
- 有序性:序列中元素挨个放,谁在前谁在后,位置是固定的。
- 索引访问:可以通过索引(从0开始)来访问序列中的任意元素。
- 切片操作:支持通过切片语法获取子序列。(就像切面包,可以切出其中一段来用。)
- 可迭代:可以用循环一个一个地处理里面的元素。
主要序列类型一览:
|
序列类型 |
可变性 |
说明 |
典型字面量 |
|
列表 (List) |
✅ 可变 |
最灵活的序列,可以存放不同类型的数据 |
|
|
元组 (Tuple) |
❌ 不可变 |
类似列表,但一旦创建就不能修改,常用于固定数据 |
|
|
字符串 (String) |
❌ 不可变 |
由字符组成的序列 |
|
|
范围 (Range) |
❌ 不可变 |
用于生成连续的整数序列,常用于循环 |
|
|
字节串 (Bytes) |
❌ 不可变 |
由 0-255 之间的整数组成的不可变序列,用于处理二进制数据,比如图片、文件内容 |
|
|
字节数组 (Bytearray) |
✅ 可变 |
Bytes的可修改版本 |
|
一句话总结:列表最灵活,元组和字符串是“只读”的,range专门用来数数,bytes和bytearray是处理二进制数据的。
🧐 详细解读:这几种序列有什么区别?
我们可以根据两个核心维度来理解它们:能不能变 和 存的是什么。
1. 按“可变性”分类
这是最常用的分类方式,决定了你能不能对它进行“增删改”操作。
可变序列(Mutable)
列表 (List):这是 Python 中最强大的序列。你可以随时往里面添加元素(
.append())、删除元素(.remove())或者修改某个位置的值。它就像是一个可伸缩的收纳盒。字节数组 (Bytearray):如果你需要处理二进制数据(比如文件读写),并且需要修改其中的内容,就会用到它。
不可变序列(Immutable)
元组 (Tuple):它像是一个“冻结”的列表。定义好之后,你不能增加、删除或修改里面的元素。这使得元组可以作为字典的键(Key),或者用于保护数据不被意外修改。
字符串 (String) & 字节串 (Bytes):正如我们之前讨论的,它们一旦创建就不能改变。任何看似“修改”的操作(如拼接),实际上都是在内存里新建了一个对象。
范围 (Range):它代表一个数学上的整数区间(比如 0 到 9),这个区间本身是固定的。
2. 按“存储内容”分类
- 容器序列 (Container):
如 列表 和 元组。
- 它们可以存放不同类型的数据(比如一个列表里既有数字又有字符串,甚至嵌套另一个列表)。
- 它们存储的是对象的引用。
示例代码:
# 创建一个可变对象(列表)
shared_data = [1, 2, 3]
# 两个不同的容器都存储对同一个对象的引用
list_a = [shared_data, "first"]
list_b = [shared_data, "second"]
print("修改前:")
print("list_a:", list_a) # [[1, 2, 3], 'first']
print("list_b:", list_b) # [[1, 2, 3], 'second']
# 通过任何一个容器修改共享的对象
list_a[0].append(4) # 修改的是 shared_data 对象
print("\n通过list_a修改共享对象后:")
print("list_a:", list_a) # [[1, 2, 3, 4], 'first']
print("list_b:", list_b) # [[1, 2, 3, 4], 'second']
# 可以看到两个容器都被影响了,因为它们都引用同一个对象

也就是a1变换的话,a2也变,因为引用的都是同一个。
- 扁平序列 (Flat):
如 字符串、字节串、字节数组、数组 (array.array)。
- 它们只能容纳一种类型(如全是字符、全是字节或全是数字)。
- 它们在内存中是一段连续的空间,存储的是具体的值,因此在处理大量数值数据时,比列表更节省内存且高效。
💡 总结建议
如果你需要:
- 随时增删改的数据集合,用
列表 (list)。 - 固定不变的数据(比如坐标
(x, y)),用元组 (tuple)。 - 处理文本,用
字符串 (str)。 - 文件或网络传输的二进制数据,用
bytes或bytearray。 for循环中生成一串数字,用range。
这些序列类型虽然形态各异,但都遵循“索引”、“切片”、“求长度(len())”等通用规则,掌握一个就能触类旁通!❤
(我们后续逐个介绍不同序列类型的操作——增删改查。)
更多推荐


所有评论(0)