📚 Python 四大组合数据类型 (Collection Types)
Python 提供了四种主要的集合类型,用于在单个变量中存储多个项目。它们在有序性 、可变性 和唯一性上有显著区别。
1. 列表 (List) - []
"最常用的多功能容器"
-
特点:有序、可变、允许重复元素。
-
语法 :使用方括号
[]。 -
适用场景:需要按顺序存储、频繁修改(增删改)的数据。
-
示例 :
pythonfruits = ["apple", "banana", "cherry", "apple"] # 允许重复 fruits[0] = "pear" # 可变:修改第一个元素 fruits.append("orange") # 增加元素
2. 元组 (Tuple) - ()
"不可变的'只读'列表"
-
特点 :有序、不可变、允许重复元素。
-
语法 :使用圆括号
()。 -
适用场景:存储不希望被修改的数据(如经纬度、配置参数),且元组比列表占用的内存更小,效率更高。
-
示例 :
pythonpoint = (10, 20) # point[0] = 100 # 报错!元组一旦创建不可修改 single_tuple = (5,) # 注意:单个元素的元组后面必须加逗号
3. 集合 (Set) - {}
"独一无二的无序盒子"
-
特点 :无序 、可变、不允许重复。
-
语法 :使用花括号
{},或set()函数。 -
适用场景:去重(如统计唯一访问IP)、进行数学集合运算(交、并、差集)。
-
示例 :
pythonids = {101, 102, 101, 103} print(ids) # 输出 {101, 102, 103},自动去重 # print(ids[0]) # 报错!无序,没有索引
4. 字典 (Dictionary) - {k:v}
"高效的键值对映射"
-
特点 :无序(3.7+版本在逻辑上表现为插入有序)、可变、键(Key)唯一。
-
语法 :使用花括号,内部为
key: value形式。 -
适用场景:存储具有对应关系的数据,通过键快速查找值(类似查字典)。
-
示例 :
pythonuser = {"name": "Jojo", "age": 25} print(user["name"]) # 通过键访问值 user["age"] = 26 # 修改值
🚀 核心差异对比表
| 类型 | 符号 | 有序性 | 可变性 | 重复性 | 查找速度 |
|---|---|---|---|---|---|
| List (列表) | [] |
是 | 可变 | 允许 | 慢 (线性搜索) |
| Tuple (元组) | () |
是 | 不可变 | 允许 | 慢 (线性搜索) |
| Set (集合) | {} |
否 | 可变 | 不允许 | 极快 (哈希表) |
| Dict (字典) | {k:v} |
3.7+有序 | 可变 | 键不允、值允许 | 极快 (哈希表) |
🛠 快速记忆口诀
- List:方括号,排排坐,可以改,随你加。
- Tuple:圆括号,排排坐,定死了,不能改。
- Set:大括号,乱糟糟,没重复,算交并。
- Dict:大括号,键对值,找键快,不重名。
💡 开发中的选择建议
- 如果你只是想存一串东西 ,且之后还要改:用 List。
- 如果你存的东西永远不该被改 :用 Tuple。
- 如果你需要快速判断某个东西在不在里面 :用 Set。
- 如果你需要把一个东西关联到另一个东西上 (比如人名关联手机号):用 Dict。
学习贴士:
- 切片操作 (
list[1:3]) 只适用于有序的 List 和 Tuple。 - 去重黑科技 :如果你有一个带重复的列表
arr = [1,1,2,2],想去重只需list(set(arr))。