在 Python 中,可变序列类型是创建后可修改内容的数据结构,主要包括以下核心类型及其特性:
🔧 核心可变序列类型
| 类型 | 特性描述 | 示例 |
|---|---|---|
| 列表 (list) | 动态数组,支持任意类型元素 | [1, 'a', [2]] |
| 字节数组 (bytearray) | 可修改的二进制序列 | bytearray(b'ABC') |
| 双端队列 (deque) | 高效首尾操作队列(需导入) | from collections import deque |
⭐ 关键特性与操作
-
元素修改
lst = [1, 2, 3] lst[1] = 20 [1, 20, 3](索引修改) -
动态扩容
lst.append(4) [1, 20, 3, 4](尾部添加) lst.insert(0, 0) [0, 1, 20, 3, 4](任意位置插入) -
元素删除
del lst[2] [0, 1, 3, 4](删除索引2) lst.remove(3) [0, 1, 4](删除首个匹配值) -
切片赋值
lst[1:3] = [10, 100] [0, 10, 100](批量替换)
🆚 与不可变序列对比
| 特性 | 可变序列 (list) | 不可变序列 (tuple) |
|---|---|---|
| 内容修改 | ✅ 支持增删改 | ❌ 创建后不可变 |
| 哈希支持 | ❌ 不可哈希 | ✅ 可作字典键 |
| 内存占用 | 较高(预留扩展空间) | 较低(固定分配) |
| 线程安全 | 需同步控制 | 天然安全 |
| 典型应用 | 动态数据集 | 配置项/字典键 |
🛠️ 高级操作
-
字节数组修改
buf = bytearray(b'ABCD') buf[0] = 88 bytearray(b'XBCD')(直接修改字节) -
双端队列高效操作
dq = deque([1,2,3]) dq.appendleft(0) deque([0,1,2,3])(左端插入) dq.pop() 移除右端元素
💡 应用场景
-
动态数据收集
results = [] for data in stream: if condition: results.append(process(data)) 动态扩展 -
缓冲区处理
buffer = bytearray(1024) while read_data(source, buffer): 复用缓冲区 process(buffer) -
实时数据处理队列
from collections import deque event_queue = deque(maxlen=1000) 固定长度队列
可变序列通过动态修改能力支持灵活数据处理,但需注意并发场景下的线程安全问题。