目录
Python中的六大数据类型(数字、字符串、列表、元组、字典和集合),我们已经讲清楚了前5个,现在我们开始讲解Python中最后一个经典的数据类型---集合(Set)数据类型。
集合(Set),它是一个无序、不重复的数据集合。也就是说,集合中的元素是唯一的。集合中的元素可以是任何类型,包括数字、字符串、列表、字典等。集合具有快速查找和删除元素的特性,并且可以进行交集、并集、差集等常见的集合操作。
1. 创建集合
集合同样使用大括号 {},但是集合必须使用 set() 函数来创建一个集合。集合中的元素不能重复,如果重复添加相同的元素,只会保留一个。创建集合有以下几种方法:
1.1 创建空集合
使用set()函数创建空集合:
set1 = set()
1.2 set() 函数创建集合
使用 set() 函数创建集合:
# 使用大括号创建集合
Set2 = {1, 'banana', 'cherry'}
print(Set2) # 输出: {'banana', 'cherry', 'apple'}
# 使用 set() 函数创建集合
colors = set(['red', 'green', 'blue'])
print(colors) # 输出: {'blue', 'green', 'red'}
1.3 迭代创建集合
使用其他可迭代对象创建集合:
# 使用其他迭代创建集合,使用了字符串
set3 = set("Hello World")
print(set3) #输出:{'H', 'r', 'd', ' ', 'e', 'o', 'l', 'W'}
2. 集合的查询
集合(set
)是无序的数据结构,因此不能通过下标直接访问集合中的元素,因为集合中的元素没有固定的顺序。那么,访问集合中的元素,有以下几种方法。
2.1 打印集合
可以直接使用 print
函数来打印整个集合的内容。
my_set = {1, 2, 3, 4, 5}
print(my_set) #输出:{1, 2, 3, 4, 5}
2.2 遍历集合元素
使用 for
循环可以遍历集合中的每个元素。
my_set = {1, 2, 3, 4, 5}
for element in my_set:
print(element) # 输出:1, 2, 3, 4, 5
2.3 检查元素是否存在
使用 in
关键字检查集合中是否存在特定元素。
my_set = {1, 2, 3, 4, 5}
if 3 in my_set:
print("3 存在于集合中")
else:
print("3 不存在于集合中") # 输出:3 存在于集合中
3. 集合的更新操作
在集合中,没有像列表那样的下标直接访问元素的方法。前面访问的集合元素的时候说过,集合是无序的,元素存储没有特定的顺序,因此无法像列表或元组那样使用索引来访问或查看元素。关于集合的更新操作,可以通过多种方法来修改集合的内容,包括添加、移除和更新元素等。以下是一些常见的集合更新操作:
3.1 添加元素
使用 add()
方法向集合中添加一个元素,使用update()添加多个元素。
my_set = {1, 2, 3}
# 添加单个元素
my_set.add(4)
print(my_set)
# 添加多个元素
my_set.update([5, 6, 7])
print(my_set)
# 输出:
# {1, 2, 3, 4}
# {1, 2, 3, 4, 5, 6, 7}
3.2 移除元素
可以使用 remove()
或 discard()
方法来移除集合中的元素。
my_set = {1, 2, 3, 4, 5}
# 移除指定元素
my_set.remove(3)
print(my_set) # 输出:{1, 2, 4, 5}
# 使用discard移除元素
my_set.discard(2)
print(my_set) # 输出:{1, 4, 5}
# 尝试移除不存在的元素
my_set.discard(10) # 不会报错
print(my_set) # 输出:{1, 4, 5}
# 使用remove移除不存在的元素
# my_set.remove(10) # 会报错:KeyError
3.3 清空集合
使用 clear()
方法可以清空集合中的所有元素。
my_set = {1, 2, 3, 4, 5}
my_set.clear()
print(my_set) # 输出:set()
3.4 更新集合
可以使用 update()
方法将一个集合的元素添加到另一个集合中。
set1 = {1, 2, 3}
set2 = {3, 4, 5}
# 将 set2 的元素添加到 set1 中
set1.update(set2)
print(set1) # 输出:{1, 2, 3, 4, 5}
4. 集合的运算操作
集合提供了多种运算操作,常见的有并集、交集、差集等。这些操作可以通过运算符或集合对象的方法来实现。下面我们来讲一些常见的集合运算操作:
假设有两个集合:
set1 = {1, 2, 3, 4, 5}
set2 = {3, 4, 5, 6, 7}
4.1 并集(Union)
并集操作使用 | 运算符或 union() 方法。返回包含两个集合中所有唯一元素的集合。
# 使用运算符 |
union_set = set1 | set2
print(union_set) # 输出:{1, 2, 3, 4, 5, 6, 7}
# 使用方法 union()
union_set = set1.union(set2)
print(union_set) # 输出:{1, 2, 3, 4, 5, 6, 7}
4.2 交集(Intersection)
交集操作使用 & 运算符或 intersection() 方法,返回两个集合中共同存在的元素组成的集合。
# 使用运算符 &
intersection_set = set1 & set2
print(intersection_set) # 输出:{3, 4, 5}
# 使用方法 intersection()
intersection_set = set1.intersection(set2)
print(intersection_set) # 输出:{3, 4, 5}
4.3 差集(Difference)
差集操作使用 - 运算符或 difference() 方法。返回在第一个集合中但不在第二个集合中的元素组成的集合。
# 使用运算符 -
difference_set = set1 - set2
print(difference_set) # 输出:{1, 2}
# 使用方法 difference()
difference_set = set1.difference(set2)
print(difference_set) # 输出:{1, 2}
4.4 对称差集(Symmetric Difference)
对称差集操作,使用 ^ 运算符或 symmetric_difference() 方法。返回两个集合中不重复的元素组成的集合,即属于其中一个集合但不属于交集的元素。
# 使用运算符 ^
symmetric_difference_set = set1 ^ set2
print(symmetric_difference_set) # 输出:{1, 2, 6, 7}
# 使用方法 symmetric_difference()
symmetric_difference_set = set1.symmetric_difference(set2)
print(symmetric_difference_set) # 输出:{1, 2, 6, 7}
5. 集合的常用函数总结
前面我们讲了Python集合的使用操作用法,下面总结一些常用的 Python 集合方法,如下表所示:
方法 | 描述 |
---|---|
add(element) | 向集合中添加一个元素。如果元素已经存在,则不执行任何操作。 |
clear() | 移除集合中的所有元素。 |
copy() | 返回集合的一个浅拷贝。 |
difference(set) | 返回一个新集合,其中包含当前集合与另一个集合的差集。 |
difference_update(set) | 移除当前集合中与另一个集合相同的元素。 |
discard(element) | 移除集合中指定的元素,如果元素不存在,则不执行任何操作。 |
intersection(set) | 返回一个新集合,其中包含当前集合与另一个集合的交集。 |
intersection_update(set) | 保留当前集合中同时也存在于另一个集合中的元素。 |
isdisjoint(set) | 判断两个集合是否没有交集,如果没有交集则返回 True,否则返回 False。 |
issubset(set) | 判断当前集合是否是另一个集合的子集。 |
issuperset(set) | 判断当前集合是否是另一个集合的超集。 |
pop() | 随机移除并返回集合中的一个元素。 |
remove(element) | 移除集合中指定的元素,如果元素不存在,则会引发 KeyError 异常。 |
symmetric_difference(set) | 返回一个新集合,其中包含当前集合与另一个集合的对称差集。 |
symmetric_difference_update(set) | 更新当前集合,仅包含当前集合与另一个集合的对称差集。 |
union(set) | 返回一个新集合,其中包含当前集合与另一个集合的并集。 |
update(set) | 更新当前集合,包含当前集合与另一个集合的并集。 |
这些方法是集合常见的操作方式。你可以根据具体的需求选择合适的方法来处理集合中的元素。
结语
Python 集合(Set)在实际编程中广泛应用。那么,关于 集合数据类型及其操作的函数讲解和示例代码,基本上讲完了。希望这些技巧能帮助你更好地利用 Python 中的集合!大家可以尝试着跟着代码一起学习,如果后面还有补充的,我将继续为大家分享。
感谢您的关注,至此,Python的六大数据类型详解系列,全部结束!
我们下一篇文章将开始Python结构语法的讲解,继续学习、记录python的下一个知识点。
如果感觉阅读对您还有些作用,可以评论留言,关注我。谢谢您的阅读!
往期学习:
往期学习:
VSCode安装教程(版本:1.87.0)Windows10