Python中的集合(set)和多重集合(multiset)是非常常用的数据结构,都可以用于快速判断元素是否存在。两者的区别在于,集合中的元素不允许重复,而多重集合中的元素可以出现多次。
集合
1. 创建集合
可以用set()
函数创建一个空集合,也可以直接用花括号{}
创建一个非空集合。其中,用花括号创建集合时,需要注意和字典的花括号区分开。
# 创建空集合
s = set()
print(s)
# 创建有元素的集合
s = {1, 2, 3}
print(s)
2. 添加和删除元素
可以用add()
方法添加一个元素到集合中,如果元素已经存在,则不会重复添加;可以用remove()
方法删除一个元素,如果元素不存在,则会报错。
# 添加元素
s = {1, 2, 3}
s.add(4)
print(s)
# 删除元素
s = {1, 2, 3}
s.remove(2)
print(s)
3. 集合的运算
集合可以进行交集、并集、差集等运算。
# 交集
s1 = {1, 2, 3}
s2 = {2, 3, 4}
print(s1 & s2)
# 并集
s1 = {1, 2, 3}
s2 = {2, 3, 4}
print(s1 | s2)
# 差集
s1 = {1, 2, 3}
s2 = {2, 3, 4}
print(s1 - s2)
多重集合
1. 创建多重集合
Python中没有直接支持多重集合的数据类型,可以使用collections模块中的Counter类来实现。可以用counter类的构造函数,传入一个可迭代对象,来创建一个多重集合。
from collections import Counter
# 创建多重集合
s = Counter([1, 2, 2, 3, 3, 3])
print(s)
2. 添加和删除元素
添加元素可以用update()
方法,删除元素可以用subtract()
方法。
from collections import Counter
# 添加元素
s = Counter([1, 1, 2, 3])
s.update([2, 2])
print(s)
# 删除元素
s = Counter([1, 1, 2, 3])
s.subtract([2, 2])
print(s)
3. 多重集合的运算
多重集合也可以进行交集、并集、差集等运算。
from collections import Counter
# 交集
s1 = Counter([1, 1, 2, 3])
s2 = Counter([2, 2, 3, 4])
print(s1 & s2)
# 并集
s1 = Counter([1, 1, 2, 3])
s2 = Counter([2, 2, 3, 4])
print(s1 | s2)
# 差集
s1 = Counter([1, 1, 2, 3])
s2 = Counter([2, 2, 3, 4])
print(s1 - s2)
以上就是Python集合和多重集合的使用方法及示例说明。