Python —— 数据容器详解
数据容器是编程语言中最基础的组成部分,Python 提供了丰富的数据容器类型(列表、元组、集合、字典),本文将从定义、操作、特性等方面系统梳理这些容器的使用方法。
一、列表(List)
1. 定义
# 基本定义
list1 = [1, 2, 3, "hello"] # 异构元素
list2 = list() # 空列表
list3 = [i for i in range(5)]# 列表推导式
2. 索引与切片
# 正向索引
print(list1[0]) # 输出: 1
# 反向索引
print(list1[-1]) # 输出: hello
# 切片操作
print(list3[1:4]) # 输出: [1, 2, 3]
3. 常用操作
# 增删改
list1.append(4) # 追加元素
list1.insert(2, "new") # 插入元素
list1.remove("hello") # 删除元素
list1[0] = 100 # 修改元素
# 排序与反转
list3.sort(reverse=True) # 降序排序
list3.reverse() # 反转列表
4. 遍历方式
# 基础遍历
for item in list1:
print(item)
# 带索引遍历
for idx, val in enumerate(list1):
print(f"Index {idx}: {val}")
二、元组(Tuple)
1. 定义
# 基本定义
tuple1 = (1, 2, "world")
tuple2 = 3, 4, 5 # 省略括号
tuple3 = tuple([1, 2, 3]) # 转换构造
2. 特性说明
- 不可变性:元组一旦创建,元素不可修改
- 轻量级:内存占用比列表小
- 多值返回:函数返回多值本质是返回元组
三、集合(Set)
1. 定义
# 基本定义
set1 = {1, 2, 3, 3} # 自动去重
set2 = set("hello") # 字符集合
set3 = set() # 空集合
2. 集合操作
# 成员运算
print(2 in set1) # 输出: True
# 集合运算
setA = {1,2,3}
setB = {3,4,5}
print(setA.union(setB)) # 并集 {1,2,3,4,5}
print(setA.intersection(setB)) # 交集 {3}
四、字典(Dictionary)
1. 定义
# 基本定义
dict1 = {"name": "Tom", "age": 18}
dict2 = dict([("a",1), ("b",2)]) # 键值对列表
dict3 = {k: v for k, v in zip(["x","y"], [10,20])} # 推导式
2. 常用操作
# 增删改查
dict1["gender"] = "male" # 新增键值对
print(dict1.get("age")) # 查询值
del dict1["age"] # 删除键
# 遍历方式
for key in dict1:
print(key, dict1[key])
for k, v in dict1.items():
print(k, v)
五、数据容器通用操作
| 操作类型 | 适用容器 | 示例代码 |
|---|---|---|
| 长度获取 | 所有容器 | len(container) |
| 成员检查 | 所有容器 | value in container |
| 切片操作 | 列表 / 元组 / 字符串 | container[start:end] |
| 迭代遍历 | 所有容器 | for item in container |
| 类型转换 | 所有容器 | list()/tuple()/set()/dict() |
六、性能对比
| 操作类型 | 列表 | 元组 | 集合 | 字典 |
|---|---|---|---|---|
| 随机访问 | O(1) | O(1) | O(1) | O(1) |
| 插入 / 删除 | O(n) | 不支持 | O(n) | O(n) |
| 成员检查 | O(n) | O(n) | O(1) | O(1) |
| 内存占用 | 中等 | 最小 | 较大 | 最大 |
注意:集合和字典的高效查询基于哈希表实现,但会消耗更多内存
总结
- 列表:动态数组,支持增删改查,最常用容器
- 元组:不可变序列,适合固定数据存储
- 集合:无序去重,高效成员检查
- 字典:键值对存储,快速查找
细节决定成败!
个人愚见,如有不对,恳请斧正!

浙公网安备 33010602011771号