文章目录
- 一 数据容器的对比总结
- 1.1 容器简单分类
- 1.2 容器特点对比
 
- 二 数据容器的通用操作
- 2.1 通用操作详解
- 2.2 通用操作总结
 
一 数据容器的对比总结
1.1 容器简单分类
数据容器可以从以下视角进行简单的分类:
- 是否支持下标索引 - 支持:列表、元组、字符串 —— 序列类型
- 不支持:集合、字典 —— 非序列类型
 
- 是否支持重复元素: - 支持:列表、元组、字符串 —— 序列类型
- 不支持:集合、字典 —— 非序列类型
 
- 是否可以修改 - 支持:列表、集合、字典
- 不支持:元组、字符串
 
1.2 容器特点对比
| 列表 | 元组 | 字符串 | 集合 | 字典 | |
|---|---|---|---|---|---|
| 元素数量 | 支持多个 | 支持多个 | 支持多个 | 支持多个 | 支持多个 | 
| 元素类型 | 任意 | 任意 | 仅字符 | 任意 | Key: Value Key:除字典外M任意类型 Value:任意类型 | 
| 下标索引 | 支持 | 支持 | 支持 | 不支持 | 不支持 | 
| 重复元素 | 支持 | 支持 | 支持 | 不支持 | 不支持 | 
| 可修改性 | 支持 | 不支持 | 不支持 | 支持 | 支持 | 
| 数据有序 | 是 | 是 | 是 | 否 | 否 | 
| 使用场景 | 可修改、可重复的一批数据记录场景 | 不可修改、可重复的一批数据记录场景 | 一串字符的记录场景 | 不可重复的数据记录场景 | 以Key检索Value的数据记录场景 | 
二 数据容器的通用操作
2.1 通用操作详解
-  访问元素: - 列表和元组:使用索引来访问单个元素,例如 my_list[0]。
- 字典:通过键来访问对应的值,例如 my_dict["key"]。
 my_list = [1, 2, 3, 4, 5] my_tuple = (10, 20, 30, 40, 50) my_dict = {"a": 1, "b": 2, "c": 3}print(my_list[2]) # 输出: 3 print(my_tuple[1]) # 输出: 20 print(my_dict["b"]) # 输出: 2
- 列表和元组:使用索引来访问单个元素,例如 
-  切片操作: - 列表和元组:使用切片语法来获取子序列,例如 my_list[start:end]。
- 字符串:使用切片获取子字符串,例如 my_string[start:end]。
 my_list = [1, 2, 3, 4, 5] my_string = "Hello, World!"print(my_list[1:4]) # 输出: [2, 3, 4] print(my_string[7:12]) # 输出: World
- 列表和元组:使用切片语法来获取子序列,例如 
-  遍历元素: - 使用 for循环遍历容器中的每个元素。
 my_set = {1, 2, 3, 4, 5}for item in my_set:print(item) # 输出: # 1 # 2 # 3 # 4 # 5
- 使用 
-  长度获取: - 使用 len()函数获取容器中元素的数量。
 my_list = [1, 2, 3, 4, 5] my_dict = {"a": 1, "b": 2, "c": 3}print(len(my_list)) # 输出: 5 print(len(my_dict)) # 输出: 3
- 使用 
-  成员检查: - 使用 in关键字检查元素是否存在于容器中。
 my_list = [1, 2, 3, 4, 5]if 3 in my_list:print("3 exists in the list") # 输出: 3 exists in the list
- 使用 
-  连接/合并容器: - 列表和元组:使用 +运算符来连接或合并容器。
- 字典:使用 update()方法来合并字典。
 list1 = [1, 2, 3] list2 = [4, 5, 6]merged_list = list1 + list2 print(merged_list) # 输出: [1, 2, 3, 4, 5, 6]
- 列表和元组:使用 
-  复制容器: - 使用 copy()方法或切片来复制列表和元组。
- 使用 copy()方法复制集合。
- 使用 copy()方法或dict()构造函数复制字典。
 original_list = [1, 2, 3] copied_list = original_list.copy()print(copied_list) # 输出: [1, 2, 3]
- 使用 
-  删除元素: - 列表和元组:使用 del语句来删除元素,例如del my_list[0]。
- 字典:使用 del语句或pop()方法删除键值对。
 my_list = [1, 2, 3, 4, 5] del my_list[2] print(my_list) # 输出: [1, 2, 4, 5]
- 列表和元组:使用 
-  清空容器: - 使用 clear()方法来清空列表、集合和字典。
 my_set = {1, 2, 3, 4, 5} my_set.clear() print(my_set) # 输出: set()
- 使用 
-  排序: - 列表:使用 sort()方法或sorted()或者sorted(容器, [reverse=True])函数来排序列表。
- 集合:使用 sorted()或者sorted(容器, [reverse=True])函数对集合进行排序。
- 排序后都会得到列表(list)对象。
 my_list = [3, 1, 4, 1, 5, 9, 2, 6] sorted_list = sorted(my_list) print(sorted_list) # 输出: [1, 1, 2, 3, 4, 5, 6, 9]
- 列表:使用 
-  查找最值: - 使用 max()和min()函数来查找列表或元组中的最大和最小值。
 my_tuple = (10, 5, 8, 12, 3) max_value = max(my_tuple) min_value = min(my_tuple)print("Max:", max_value) # 输出: Max: 12 print("Min:", min_value) # 输出: Min: 3
- 使用 
-  列表推导、字典解析等: - 利用列表推导来创建新的列表。
- 使用字典解析来创建新的字典。
 my_list = [1, 2, 3, 4, 5] squared_list = [num ** 2 for num in my_list] print(squared_list) # 输出: [1, 4, 9, 16, 25]
-  转换为其他类型: - 使用 list(),tuple(),set()和dict()等构造函数来进行类型转换。
 my_tuple = (1, 2, 3) my_list = list(my_tuple) print(my_list) # 输出: [1, 2, 3]
- 使用 
-  添加/删除元素: - 列表:使用 append(),insert()和remove()方法来添加和删除元素。
- 集合:使用 add()和remove()方法来添加和删除元素。
- 字典:使用赋值来新增或修改键值对,使用 pop()方法删除键值对。
 
- 列表:使用 
2.2 通用操作总结
| 操作 | 描述 | 
|---|---|
| 访问元素 | 使用索引或键来访问容器中的元素。 | 
| 切片操作 | 使用切片语法获取子序列或子字符串。 | 
| 遍历元素 | 使用 for循环遍历容器中的每个元素。 | 
| 长度获取 | 使用 len()函数获取容器中元素的数量。 | 
| 成员检查 | 使用 in关键字检查元素是否存在于容器中。 | 
| 连接/合并容器 | 使用 +运算符来连接或合并容器。 | 
| 复制容器 | 使用 copy()方法或切片来复制容器。 | 
| 删除元素 | 使用 del语句来删除容器中的元素。 | 
| 清空容器 | 使用 clear()方法来清空容器。 | 
| 排序 | 使用 sorted()函数来对容器进行排序。 | 
| 查找最值 | 使用 max()和min()函数来查找容器中的最大和最小值。 | 
| 列表推导、字典解析等 | 利用推导式来创建新的容器。 | 
| 转换为其他类型 | 使用构造函数来进行容器类型之间的转换。 |