Python 集合的基本操作
1. 简介
在Python中,集合(set)是一种无序、可变的容器,它的元素之间没有先后顺序关系。集合中的每个元素是唯一的,即重复元素在集合中只会出现一次。集合可以用来存储不重复的元素,以及进行元素之间的交集、并集、差集等操作。本文将详细介绍集合的基本操作。
2. 创建集合
在Python中,我们可以使用大括号({})或者set()函数来创建一个集合。
# 使用大括号创建集合
s1 = {1, 2, 3, 4, 5}
print(s1) # 输出:{1, 2, 3, 4, 5}
# 使用set()函数创建集合
s2 = set([1, 2, 3, 4, 5])
print(s2) # 输出:{1, 2, 3, 4, 5}
3. 集合的基本操作
3.1 访问集合中的元素
集合是无序的,因此不能通过索引来访问集合中的元素,但可以通过遍历来访问集合中的每个元素。
s = {1, 2, 3, 4, 5}
for num in s:
print(num)
输出结果为:
1
2
3
4
5
3.2 添加元素到集合中
可以使用add()
方法将元素添加到集合中。如果添加的元素已经存在于集合中,则不会重复添加。
s = {1, 2, 3, 4, 5}
s.add(6)
print(s) # 输出:{1, 2, 3, 4, 5, 6}
s.add(3) # 元素3已经存在于集合中,不会重复添加
print(s) # 输出:{1, 2, 3, 4, 5, 6}
3.3 从集合中移除元素
可以使用remove()
方法从集合中移除指定的元素。如果指定的元素不存在于集合中,会抛出KeyError错误。
s = {1, 2, 3, 4, 5}
s.remove(3)
print(s) # 输出:{1, 2, 4, 5}
s.remove(6) # 元素6不存在于集合中,会抛出KeyError错误
可以使用discard()
方法从集合中移除指定的元素,如果元素不存在于集合中,不会抛出错误。
s = {1, 2, 3, 4, 5}
s.discard(3)
print(s) # 输出:{1, 2, 4, 5}
s.discard(6) # 元素6不存在于集合中,不会抛出错误
3.4 集合的长度
可以使用len()
函数来获取集合的长度(即集合中元素的个数)。
s = {1, 2, 3, 4, 5}
print(len(s)) # 输出:5
3.5 判断元素是否存在于集合中
可以使用in
关键字来判断某个元素是否存在于集合中。
s = {1, 2, 3, 4, 5}
print(3 in s) # 输出:True
print(6 in s) # 输出:False
3.6 清空集合
可以使用clear()
方法将集合中的所有元素清空。
s = {1, 2, 3, 4, 5}
s.clear()
print(s) # 输出:set()
4. 集合的运算
4.1 交集
可以使用&
运算符或intersection()
方法获取两个集合的交集。
s1 = {1, 2, 3, 4, 5}
s2 = {4, 5, 6, 7, 8}
print(s1 & s2) # 输出:{4, 5}
print(s1.intersection(s2)) # 输出:{4, 5}
4.2 并集
可以使用|
运算符或union()
方法获取两个集合的并集。
s1 = {1, 2, 3, 4, 5}
s2 = {4, 5, 6, 7, 8}
print(s1 | s2) # 输出:{1, 2, 3, 4, 5, 6, 7, 8}
print(s1.union(s2)) # 输出:{1, 2, 3, 4, 5, 6, 7, 8}
4.3 差集
可以使用-
运算符或difference()
方法获取两个集合的差集。
s1 = {1, 2, 3, 4, 5}
s2 = {4, 5, 6, 7, 8}
print(s1 - s2) # 输出:{1, 2, 3}
print(s1.difference(s2)) # 输出:{1, 2, 3}
4.4 对称差集
可以使用^
运算符或symmetric_difference()
方法获取两个集合的对称差集。
s1 = {1, 2, 3, 4, 5}
s2 = {4, 5, 6, 7, 8}
print(s1 ^ s2) # 输出:{1, 2, 3, 6, 7, 8}
print(s1.symmetric_difference(s2)) # 输出:{1, 2, 3, 6, 7, 8}
5. 集合的应用场景
集合在实际应用中具有广泛的应用场景,下面列举几个常见的应用场景。
5.1 去重
由于集合中的元素不允许重复,因此可以利用集合的特性进行去重操作。
lst = [1, 2, 2, 3, 3, 4, 5, 5]
s = set(lst)
print(s) # 输出:{1, 2, 3, 4, 5}
5.2 成员关系判断
集合是唯一的,可以用来判断一个元素是否属于一个集合。
s = {1, 2, 3, 4, 5}
print(1 in s) # 输出:True
5.3 求交集、并集、差集
利用集合的运算操作,可以方便地求取集合之间的交集、并集和差集。
s1 = {1, 2, 3, 4, 5}
s2 = {4, 5, 6, 7, 8}
# 求交集
print(s1 & s2) # 输出:{4, 5}
print(s1.intersection(s2)) # 输出:{4, 5}
# 求并集
print(s1 | s2) # 输出:{1, 2, 3, 4, 5, 6, 7, 8}
print(s1.union(s2)) # 输出:{1, 2, 3, 4, 5, 6, 7, 8}
# 求差集
print(s1 - s2) # 输出:{1, 2, 3}
print(s1.difference(s2)) # 输出:{1, 2, 3}
# 求对称差集
print(s1 ^ s2) # 输出:{1, 2, 3, 6, 7, 8}
print(s1.symmetric_difference(s2)) # 输出:{1, 2, 3, 6, 7, 8}
6. 总结
本文介绍了Python集合的基本操作,包括集合的创建、访问、添加、移除、长度判断以及集合运算等。集合是一种无序、唯一的容器,可以用来存储不重复的元素,并且可以进行交集、并集、差集和对称差集等运算。在实际应用中,集合可以用来进行去重、成员关系判断等操作,具有广泛的应用场景。通过掌握集合的基本操作,可以更灵活、高效地处理数据。