11.1 集合的定义(掌握)
集合是一个无序且不重复的元素集合。它通常用于去重、集合运算(交集、并集、差集等)等场景。集合使用大括号 {}
表示,或者通过 set()
函数创建(适用于空集合)。
定义集合:
empty_set = set() # 空集合,不能用 {} 创建空集合 fruits = {"apple", "banana", "cherry"} # 包含多个元素的集合
11.2 集合的基本操作(掌握)
集合支持添加、删除和检查元素是否存在等基本操作。
11.2.1 添加元素
使用
add()
方法将元素添加到集合中,如果元素已存在则不会重复添加。fruits = {"apple", "banana"} fruits.add("cherry") print(fruits) # 输出 {'apple', 'banana', 'cherry'}
11.2.2 删除元素
- 使用
remove()
方法删除指定元素,如果元素不存在会引发KeyError
。 使用
discard()
方法删除指定元素,如果元素不存在不会报错。fruits = {"apple", "banana", "cherry"} fruits.remove("banana") fruits.discard("grape") # 不会报错 print(fruits) # 输出 {'apple', 'cherry'}
11.2.3 检查元素是否存在
使用
in
关键字检查元素是否存在于集合中。fruits = {"apple", "banana", "cherry"} print("apple" in fruits) # 输出 True print("grape" in fruits) # 输出 False
11.3 集合的常用方法(掌握)
集合提供了丰富的方法来进行集合运算,如交集、并集、差集等。
11.3.1 union()
和 |
:并集
使用
union()
方法或|
运算符获取两个集合的并集,返回一个新集合。set1 = {1, 2, 3} set2 = {3, 4, 5} print(set1.union(set2)) # 输出 {1, 2, 3, 4, 5} print(set1 | set2) # 输出 {1, 2, 3, 4, 5}
11.3.2 intersection()
和 &
:交集
使用
intersection()
方法或&
运算符获取两个集合的交集,返回一个新集合。set1 = {1, 2, 3} set2 = {3, 4, 5} print(set1.intersection(set2)) # 输出 {3} print(set1 & set2) # 输出 {3}
11.3.3 difference()
和 -
:差集
使用
difference()
方法或-
运算符获取集合的差集,返回一个新集合。set1 = {1, 2, 3} set2 = {3, 4, 5} print(set1.difference(set2)) # 输出 {1, 2} print(set1 - set2) # 输出 {1, 2}
11.3.4 symmetric_difference()
和 ^
:对称差集
使用
symmetric_difference()
方法或^
运算符获取集合的对称差集,即在任一集合中但不在两个集合中的元素。set1 = {1, 2, 3} set2 = {3, 4, 5} print(set1.symmetric_difference(set2)) # 输出 {1, 2, 4, 5} print(set1 ^ set2) # 输出 {1, 2, 4, 5}
11.4 集合的更新操作(掌握)
集合的更新操作会将另一个集合中的元素添加到当前集合中,通常会直接改变原集合。
11.4.1 update()
和 |=
:并集更新
使用
update()
方法或|=
运算符将另一个集合的元素并入当前集合,直接修改原集合。set1 = {1, 2, 3} set2 = {3, 4, 5} set1.update(set2) print(set1) # 输出 {1, 2, 3, 4, 5}
11.4.2 intersection_update()
和 &=
:交集更新
使用
intersection_update()
方法或&=
运算符保留当前集合和另一个集合的交集,直接修改原集合。set1 = {1, 2, 3} set2 = {3, 4, 5} set1.intersection_update(set2) print(set1) # 输出 {3}
11.4.3 difference_update()
和 -=
:差集更新
使用
difference_update()
方法或-=
运算符从当前集合中删除与另一个集合的交集元素,直接修改原集合。set1 = {1, 2, 3} set2 = {3, 4, 5} set1.difference_update(set2) print(set1) # 输出 {1, 2}
11.4.4 symmetric_difference_update()
和 ^=
:对称差集更新
使用
symmetric_difference_update()
方法或^=
运算符保留当前集合和另一个集合的对称差集,直接修改原集合。set1 = {1, 2, 3} set2 = {3, 4, 5} set1.symmetric_difference_update(set2) print(set1) # 输出 {1, 2, 4, 5}
11.5 集合的遍历(掌握)
可以使用 for
循环遍历集合中的每一个元素。
示例:
fruits = {"apple", "banana", "cherry"} for fruit in fruits: print(fruit)
11.6 集合生成式(掌握)
集合生成式(Set Comprehension)是一种简洁的生成集合的方式,可以用一行代码创建一个新的集合,常用于数据处理和过滤。
基本语法:
{表达式 for 变量 in 可迭代对象 if 条件}
示例:
squares = {x**2 for x in range(1, 6)} print(squares) # 输出 {1, 4, 9, 16, 25}
11.7 集合的使用场景(了解)
集合主要用于去重和集合运算的场景,在以下情况中非常有用:
- 数据去重:可以快速删除重复元素。
- 集合运算:交集、并集、差集和对称差集等集合操作。
- 快速查找:集合中的查找操作的时间复杂度为
O(1)
,比列表更快。
示例:去重应用:
numbers = [1, 2, 2, 3, 4, 4, 5] unique_numbers = set(numbers) print(unique_numbers) # 输出 {1, 2, 3, 4, 5}
11.8 冻结集合(了解)
冻结集合(frozenset
)是一种不可变集合,一旦创建就无法修改,类似于不可变的元组。冻结集合常用于需要不可变集合的场景,例如字典的键。
创建冻结集合:
frozen_fruits = frozenset(["apple", "banana", "cherry"]) # frozen_fruits.add("grape") # 会引发 AttributeError,因为冻结集合不可修改 print(frozen_fruits) # 输出 frozenset({'apple', 'banana', 'cherry'})
好的,下面将详细讲解 Python 中的 if
判断语句。if
语句用于根据条件执行不同的代码块,是编写控制流的重要工具。从基本语法、分支结构到嵌套和简写形式,将详细解释 if
判断的使用。知识点分为“掌握”和“了解”两类,序号从 12.1 开始。
1 条评论
对传统与现代的融合思考颇具启发性。