python学习笔记text6:数据容器:集合与字典
·
目录
集合
定义与特点
集合(Set)是Python中一种无序、可变的数据类型,用于存储唯一的元素。集合中的元素必须是不可变类型(如数字、字符串、元组),但集合本身是可变的。集合的主要特点包括:
- 元素唯一性:集合中不允许重复元素。
- 无序性:集合中的元素没有固定顺序。
- 支持数学上的集合操作(如并集、交集等)。
定义空集合
空集合必须使用set()函数定义,直接使用{}会创建一个空字典。
empty_set = set() # 正确定义空集合
集合操作
集合支持多种操作,以下是一些常见操作的示例:
创建集合
fruits = {"apple", "banana", "cherry"}
添加元素
fruits.add("orange") # 添加单个元素
fruits.update(["mango", "grape"]) # 添加多个元素
删除元素
fruits.remove("banana") # 如果元素不存在会报错
fruits.discard("banana") # 元素不存在不会报错
fruits.pop() #随机取出一个元素
集合运算
set1 = {1, 2, 3}
set2 = {3, 4, 5}
# 并集
union_set = set1.union(set2) # 或使用 set1 | set2
print(union_set) # 输出: {1, 2, 3, 4, 5}
# 差集
difference_set = set1.difference(set2) # 或使用 set1 - set2
print(difference_set) # 输出: {1, 2}
# 交集
intersection_set = set1.intersection(set2) # 或使用 set1 & set2
print(intersection_set) # 输出: {3}
# 对称差集
symmetric_diff = set1.symmetric_difference(set2) # 或使用 set1 ^ set2
print(symmetric_diff) # 输出: {1, 2, 4, 5}
其他操作
# 统计长度
length = len(fruits) # 输出: 4
# 清空集合
fruits.clear()
# 检查元素是否存在
print("apple" in fruits) # 输出: True
集合操作汇总表
| 操作 | 方法 | 运算符 | 说明 |
|---|---|---|---|
| 并集 | union() | ` | ` |
| 差集 | difference() | - | 返回第一个集合独有的元素 |
| 交集 | intersection() | & | 返回两个集合共有的元素 |
| 对称差集 | symmetric_difference() | ^ | 返回两个集合独有的元素 |
| 更新差集 | difference_update() | -= | 原地修改集合为差集 |
| 添加元素 | add() | - | 添加单个元素 |
| 添加多个元素 | update() | - | 添加多个元素 |
| 删除元素 | remove()/discard() | - | 删除元素 |
| 取出元素 | pop() | - | 随机取出元素 |
| 长度统计 | len() | - | 返回集合元素数量 |
字典
定义与特点
字典(Dictionary)是Python中一种无序、可变的数据类型,用于存储键值对。字典的主要特点包括:
- 键唯一性:字典中的键必须是唯一的。
- 无序性:字典中的键值对没有固定顺序。
- 键必须是不可变类型(如数字、字符串、元组)。
定义空字典
空字典可以使用{}或dict()定义。
empty_dict = {} # 或 empty_dict = dict()
字典操作
字典支持多种操作,以下是一些常见操作的示例:
创建字典
person = {"name": "Alice", "age": 25, "city": "New York"}
访问元素
print(person["name"]) # 输出: Alice
print(person.get("age")) # 输出: 25
修改元素
person["age"] = 26 # 修改年龄
添加元素
person["gender"] = "female" # 添加新键值对
删除元素
person.pop("city") # 删除指定键值对
del person["age"] # 删除指定键值对
其他操作
# 统计长度
length = len(person) # 输出: 2
# 获取所有键
keys = person.keys()
# 获取所有值
values = person.values()
# 获取所有键值对
items = person.items()
字典操作汇总表
| 操作 | 方法 | 说明 |
|---|---|---|
| 创建 | {}或dict() | 定义空字典 |
| 访问 | dict[key]或get() | 通过键访问值 |
| 修改 | dict[key] = value | 修改键值对 |
| 添加 | dict[key] = value | 添加新键值对 |
| 删除 | pop()或del | 删除键值对 |
| 长度 | len() | 返回字典长度 |
| 获取键 | keys() | 返回所有键 |
| 获取值 | values() | 返回所有值 |
| 获取键值对 | items() | 返回所有键值对 |
数据容器通用操作
统计元素个数
使用len()函数可获取容器内元素数量
示例代码:
my_list = [1, 2, 3]
print(len(my_list)) # 输出3
检索最大值
max()函数返回容器中的最大元素
适用场景:
- 数字类型直接比较大小
- 字符串按ASCII码比较 示例:
print(max([10, 20, 5])) # 20
检索最小值
min()函数与max()逻辑相反
注意点:
- 空容器会引发ValueError
- 混合类型需确保可比较 示例:
print(min({"a", "b", "c"})) # 随机输出(集合无序)
类型转换
主要转换方法:
list("abc") # ['a', 'b', 'c']
tuple([1,2]) # (1, 2)
str([1,2]) # "[1, 2]"
set([1,1,2]) # {1, 2}
特殊注意:
- 字符串转列表会拆分为单个字符
- 集合转换会自动去重
排序功能
sorted()函数特性:
- 返回新列表对象
- 可通过reverse参数控制升降序
- 支持key参数自定义排序规则 示例:
sorted((3,1,2), reverse=True) # [3, 2, 1]
sorted((3,1,2)) # [1,2,3]
注意事项
- 字典操作默认针对键进行操作
- 集合转换会丢失元素顺序和重复值
更多推荐

所有评论(0)