Python中的集合
在Python中,集合(set)是一种无序、不重复元素的容器。集合可以进行交集、并集、差集等操作,是非常实用的一种数据结构。
创建集合
在Python中,可以使用大括号{}
或者set()
函数来创建集合。例如:
# 使用大括号创建集合
set1 = {1, 2, 3}
print(set1) # 输出 {1, 2, 3}
# 使用set()函数创建集合
set2 = set([1, 2, 3])
print(set2) # 输出 {1, 2, 3}
需要注意的是,如果要创建空集合,必须使用set()
函数,因为使用大括号创建的空集合会被解释为创建空字典。
# 创建空集合
set3 = set()
print(set3) # 输出 set()
集合操作
Python中的集合支持并集、交集、差集、对称差集等操作。
并集
求两个集合的并集,可以使用|
符号,也可以使用union()
方法。例如:
set1 = {1, 2, 3}
set2 = {3, 4, 5}
# 使用|符号求并集
set3 = set1 | set2
print(set3) # 输出 {1, 2, 3, 4, 5}
# 使用union()方法求并集
set4 = set1.union(set2)
print(set4) # 输出 {1, 2, 3, 4, 5}
交集
求两个集合的交集,可以使用&
符号,也可以使用intersection()
方法。例如:
set1 = {1, 2, 3}
set2 = {3, 4, 5}
# 使用&符号求交集
set3 = set1 & set2
print(set3) # 输出 {3}
# 使用intersection()方法求交集
set4 = set1.intersection(set2)
print(set4) # 输出 {3}
差集
求两个集合的差集,可以使用-
符号,也可以使用difference()
方法。例如:
set1 = {1, 2, 3}
set2 = {3, 4, 5}
# 使用-符号求差集
set3 = set1 - set2
print(set3) # 输出 {1, 2}
# 使用difference()方法求差集
set4 = set1.difference(set2)
print(set4) # 输出 {1, 2}
需要注意的是,差集的操作会从第一个集合中减去第二个集合中有的元素。
对称差集
求两个集合的对称差集,可以使用^
符号,也可以使用symmetric_difference()
方法。对称差集是指除了两个集合共有的元素外,其他的元素组成的集合。例如:
set1 = {1, 2, 3}
set2 = {3, 4, 5}
# 使用^符号求对称差集
set3 = set1 ^ set2
print(set3) # 输出 {1, 2, 4, 5}
# 使用symmetric_difference()方法求对称差集
set4 = set1.symmetric_difference(set2)
print(set4) # 输出 {1, 2, 4, 5}
其他方法
除了上面介绍的方法外,Python中的集合还支持其他常用的方法,例如:
添加元素
向集合中添加元素,可以使用add()
方法,例如:
set1 = {1, 2, 3}
# 添加元素4
set1.add(4)
print(set1) # 输出 {1, 2, 3, 4}
删除元素
从集合中删除元素,可以使用remove()
方法或者discard()
方法。两者的区别在于,如果删除的元素不存在于集合中,remove()
方法会抛出异常,而discard()
方法不会。例如:
set1 = {1, 2, 3}
# 删除元素2
set1.remove(2)
print(set1) # 输出 {1, 3}
# 删除元素4,该元素不存在于集合中,所以会抛出异常
set1.remove(4)
# 删除元素3
set1.discard(3)
print(set1) # 输出 {1}
# 删除元素4,该元素不存在于集合中,但是不会抛出异常
set1.discard(4)
判断是否为子集或超集
判断一个集合是否为另一个集合的子集或超集,可以使用issubset()
方法或者issuperset()
方法。例如:
set1 = {1, 2, 3}
set2 = {2, 3}
# 判断set2是否为set1的子集
print(set2.issubset(set1)) # 输出 True
# 判断set1是否为set2的超集
print(set1.issuperset(set2)) # 输出 True
结论
Python中的集合是一种无序、不重复元素的容器,支持常见的集合操作,例如并集、交集、差集、对称差集等。同时,Python中的集合还有其他常用的方法,例如添加元素、删除元素、判断是否为子集或超集等。在实际开发中,集合通常用于去重、统计元素出现次数等场景,是一种非常实用的数据结构。