🎃个人专栏:
🐬 算法设计与分析:算法设计与分析_IT闫的博客-CSDN博客
🐳Java基础:Java基础_IT闫的博客-CSDN博客
🐋c语言:c语言_IT闫的博客-CSDN博客
🐟MySQL:数据结构_IT闫的博客-CSDN博客
🐠数据结构:数据结构_IT闫的博客-CSDN博客
💎C++:C++_IT闫的博客-CSDN博客
🥽C51单片机:C51单片机(STC89C516)_IT闫的博客-CSDN博客
💻基于HTML5的网页设计及应用:基于HTML5的网页设计及应用_IT闫的博客-CSDN博客
🥏python:python_IT闫的博客-CSDN博客
🐠离散数学:离散数学_IT闫的博客-CSDN博客
🥽Linux:Linux_Y小夜的博客-CSDN博客
🚝Rust:Rust_Y小夜的博客-CSDN博客
欢迎收看,希望对大家有用!
目录
🎯集合的作用
集合具有以下特点和作用:
去重:集合中的元素是唯一的,不会存在重复项。这使得集合非常适合用于从列表、元组或其他可迭代对象中去除重复元素。
成员关系测试:集合提供了高效的成员关系测试操作。你可以使用
in
运算符快速检查一个元素是否存在于集合中,而不需要遍历整个集合。数学运算:集合支持数学运算,如并集、交集、差集和对称差等。这些运算可以帮助你对集合进行合并、筛选和比较。
快速查找:与列表和元组相比,集合在查找特定元素时更加高效。集合使用哈希表实现,对于大型数据集,查找所需的时间复杂度通常为 O(1)。
迭代和转换:你可以对集合进行迭代,并将其转换为列表或其他形式的数据结构。这使得集合在处理数据时非常灵活。
🎯集合的特征
唯一性:集合中的元素是唯一的,不会存在重复项。当你尝试向集合中添加已经存在的元素时,集合不会发生改变。
无序性:集合中的元素没有特定的顺序。这是因为集合不是按照索引来存储元素的,而是使用哈希表来实现元素的存储和查找。
可变性:集合是可变的,也就是说可以添加、删除和修改集合中的元素。你可以使用方法来对集合进行增加、删除和更新操作。
集合元素的类型:集合中的元素可以是任意的不可变的数据类型,例如整数、浮点数、字符串或元组等。但是,集合本身是不可哈希的,所以不能在集合中包含其他集合。
迭代性:你可以对集合进行迭代,遍历集合中的所有元素。你可以使用
for
循环或迭代器来实现集合的迭代。支持数学运算:集合支持与其他集合进行数学运算,如并集、交集、差集和对称差等。这些运算可以帮助你对集合进行合并、筛选和比较。
🎯集合中提供的方法
集合在 Python 中提供了多种方法,这些方法可以用于添加、删除、更新、查询和操作集合中的元素。下面是一些常用的集合方法:
add()
:向集合中添加一个元素。
clear()
:从集合中删除所有元素。
copy()
:返回集合的一个副本。
difference()
:返回两个集合之间的差集,即只包含在第一个集合中而不包含在第二个集合中的元素。
intersection()
:返回两个集合之间的交集,即只包含同时出现在两个集合中的元素。
isdisjoint()
:如果两个集合没有共同的元素,则返回 True;否则返回 False。
issubset()
:如果一个集合是另一个集合的子集,则返回 True;否则返回 False。
issuperset()
:如果一个集合是另一个集合的超集,则返回 True;否则返回 False。
pop()
:从集合中删除一个随机元素,并返回该元素。
remove()
:从集合中删除指定的元素。如果该元素不存在,则抛出 KeyError 异常。
symmetric_difference()
:返回两个集合之间的对称差集,即只包含出现在其中一个集合中而不同时出现在两个集合中的元素。
union()
:返回两个集合之间的并集,即包含在两个集合中的所有元素。除此之外,还有其他一些集合方法,如
discard()
、intersection_update()
、difference_update()
、symmetric_difference_update()
等,它们可以用于在集合上原地更新和操作集合。
🎯集合的运算
集合(Set)支持多种运算操作,包括并集、交集、差集和对称差集等。下面是这些集合运算的示例:
- 并集运算(Union Operation):使用
union()
方法或|
运算符进行并集运算。set1 = {1, 2, 3} set2 = {3, 4, 5} # 使用 union() 方法 union_set = set1.union(set2) print(union_set) # 输出 {1, 2, 3, 4, 5} # 使用 | 运算符 union_set = set1 | set2 print(union_set) # 输出 {1, 2, 3, 4, 5}
- 交集运算(Intersection Operation):使用
intersection()
方法或&
运算符进行交集运算。set1 = {1, 2, 3} set2 = {3, 4, 5} # 使用 intersection() 方法 intersection_set = set1.intersection(set2) print(intersection_set) # 输出 {3} # 使用 & 运算符 intersection_set = set1 & set2 print(intersection_set) # 输出 {3}
- 差集运算(Difference Operation):使用
difference()
方法或-
运算符进行差集运算。set1 = {1, 2, 3} set2 = {3, 4, 5} # 使用 difference() 方法 difference_set = set1.difference(set2) print(difference_set) # 输出 {1, 2} # 使用 - 运算符 difference_set = set1 - set2 print(difference_set) # 输出 {1, 2}
- 对称差集运算(Symmetric Difference Operation):使用
symmetric_difference()
方法或^
运算符进行对称差集运算。set1 = {1, 2, 3} set2 = {3, 4, 5} # 使用 symmetric_difference() 方法 symmetric_difference_set = set1.symmetric_difference(set2) print(symmetric_difference_set) # 输出 {1, 2, 4, 5} # 使用 ^ 运算符 symmetric_difference_set = set1 ^ set2 print(symmetric_difference_set) # 输出 {1, 2, 4, 5}
🎯集合比较运算
- 等于(==):判断两个集合是否相等。
set1 = {1, 2, 3} set2 = {3, 2, 1} print(set1 == set2) # 输出 True,因为集合元素相同,顺序不影响集合相等性
- 不等于(!=):判断两个集合是否不相等。
set1 = {1, 2, 3} set2 = {3, 4, 5} print(set1 != set2) # 输出 True,因为集合元素不完全相同
- 子集(<=):判断一个集合是否是另一个集合的子集。
set1 = {1, 2} set2 = {1, 2, 3} print(set1 <= set2) # 输出 True,因为 set1 是 set2 的子集
- 真子集(<):判断一个集合是否是另一个集合的真子集(即除了是子集外,还不能相等)。
set1 = {1, 2} set2 = {1, 2, 3} print(set1 < set2) # 输出 True,因为 set1 是 set2 的真子集
- 超集(>=):判断一个集合是否是另一个集合的超集
set1 = {1, 2, 3} set2 = {1, 2} print(set1 >= set2) # 输出 True,因为 set1 是 set2 的超集
- 真超集(>):判断一个集合是否是另一个集合的真超集(即除了是超集外,还不能相等)。
set1 = {1, 2, 3} set2 = {1, 2} print(set1 > set2) # 输出 True,因为 set1 是 set2 的真超集