详解Python 集合和多重集合

  • Post category:Python

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集合和多重集合的使用方法及示例说明。