Python
Python 四种核心容器怎么选
从顺序、可变性、去重和键值映射出发,建立列表、元组、集合和字典的选择逻辑。
先看一个具体问题
假设一批模型名称中既有重复项,又要保留第一次出现的顺序:
models = ["qwen", "deepseek", "qwen"]
unique_models = list(dict.fromkeys(models))
最终得到 ['qwen', 'deepseek']。这里没有直接使用集合,因为集合去重后不负责表达原始顺序。
四种容器分别解决什么
- 列表 list:有顺序、可修改,适合保存需要按位置访问的一组数据。
- 元组 tuple:有顺序、容器结构不可修改,适合表达固定结构。
- 集合 set:元素唯一,适合去重和集合运算。
- 字典 dict:通过键寻找值,适合保存结构化字段。
容易混淆的边界
切片会创建一个新的外层列表,但其中的可变对象仍可能与原列表共享引用。dict.get() 只是在键不存在时提供默认值,不等于数据校验。
选择容器时先问:我要保留顺序吗?需要修改吗?元素必须唯一吗?是按位置还是按名称取值?
