Python——集合

2021-05-18 10:35:10 浏览数 (1)

集合(set)是一个无序的不重复元素序列。如下所示:

代码语言:javascript复制
my_set = {1, 2, 3, 4, 1, 2, 3, 4}       # 集合,满足无序性,互异性,确定性。
print(my_set)   

程序的输出结果如下所示:

需要注意的是,创建一个空集合必须使用 set() 而不是 { },因为 { } 是用来创建一个空字典。

代码语言:javascript复制
empty_set = set()
print(empty_set)

这段代码的执行结果如下所示:

集合中的元素不能是可变数据类型,但是集合本身是可变数据类型。

集合基本的操作函数

代码语言:javascript复制
s = set()
s.add("123")        # 增加元素
s.add("456")
c_list = {}
# s.add(c_list)   # set的元素不能是可变类型
print(s)
s.remove("123")     # 删除元素
print(s)
s.update("123")     # 注意该函数的参数必须是一个可迭代对象
print(s)
s.pop()             # 弹出顶部元素,但是集合是无序的。
print(s)

程序执行结果:

代码语言:javascript复制
{'123', '456'}
{'456'}
{'1', '2', '456', '3'}
{'2', '456', '3'}

这些操作其他的可变数据类型也都有,前面说过这里的集合满足无序性,互异性,确定性。也就是说set()几乎就是数学上的集合。因此集合重点操作应该在求交集,并集,补集上,而不是前面所说的。

集合的交并补运算

代码语言:javascript复制
s1 = {1, 3, 5, 7, 9}
s2 = {2, 4, 6, 8, 10}

print(s1 & s2)     # 求交集
print(s1 | s2)     # 求并集
s3 = s1 | s2       # s3集合
print(s3 - s1)     # 子集s1在s3中的绝对补集(求补集)
s4 = {3, 6, 9}
print(s3 ^ s4)     # 求两个集合的交集的补集
print(s1 ^ s2)
print(s3 > s2)     # 判断是否是超集和子集关系
print(s1 < s2)

程序执行结果:

代码语言:javascript复制
set()
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
{2, 4, 6, 8, 10}
{1, 2, 4, 5, 7, 8, 10}
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
True
False

我们在使用集合的时候,基本是使用集合的特性来进行去重。这样比较简单。

0 人点赞