可变序列类型

在 Python 中,可变序列类型是创建后可修改内容的数据结构,主要包括以下核心类型及其特性:

🔧 核心可变序列类型

类型 特性描述 示例
列表 (list) 动态数组,支持任意类型元素 [1, 'a', [2]]
字节数组 (bytearray) 可修改的二进制序列 bytearray(b'ABC')
双端队列 (deque) 高效首尾操作队列(需导入) from collections import deque

⭐ 关键特性与操作

  1. 元素修改

    lst = [1, 2, 3]
    lst[1] = 20  [1, 20, 3](索引修改)
    
  2. 动态扩容

    lst.append(4)      [1, 20, 3, 4](尾部添加)
    lst.insert(0, 0)   [0, 1, 20, 3, 4](任意位置插入)
    
  3. 元素删除

    del lst[2]         [0, 1, 3, 4](删除索引2)
    lst.remove(3)       [0, 1, 4](删除首个匹配值)
    
  4. 切片赋值

    lst[1:3] = [10, 100]  [0, 10, 100](批量替换)
    

🆚 与不可变序列对比

特性 可变序列 (list) 不可变序列 (tuple)
内容修改 ✅ 支持增删改 ❌ 创建后不可变
哈希支持 ❌ 不可哈希 ✅ 可作字典键
内存占用 较高(预留扩展空间) 较低(固定分配)
线程安全 需同步控制 天然安全
典型应用 动态数据集 配置项/字典键

🛠️ 高级操作

  1. 字节数组修改

    buf = bytearray(b'ABCD')
    buf[0] = 88  bytearray(b'XBCD')(直接修改字节)
    
  2. 双端队列高效操作

    dq = deque([1,2,3])
    dq.appendleft(0)  deque([0,1,2,3])(左端插入)
    dq.pop()          移除右端元素
    

💡 应用场景

  1. 动态数据收集

    results = []
    for data in stream:
        if condition:
            results.append(process(data))  动态扩展
    
  2. 缓冲区处理

    buffer = bytearray(1024)
    while read_data(source, buffer):  复用缓冲区
        process(buffer)
    
  3. 实时数据处理队列

    from collections import deque
    event_queue = deque(maxlen=1000)  固定长度队列
    

可变序列通过动态修改能力支持灵活数据处理,但需注意并发场景下的线程安全问题。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容