一、集合的定义和特性
1、集合的定义:使用大括号 { } 或者 set() 函数创建集合
set1 = {"wangdoudou", 123, ("hello", 456)}
输出结果:{123, ('hello', 456), 'wangdoudou'}
# 使用set()方法创建时里面只能有一个元素
set2 = set("wangdoudou")
输出结果:{'a', 'w', 'g', 'n', 'd', 'o', 'u'}
set3 = set(["wangdoudou", 123, ("hello", 456)])
输出结果:{123, ('hello', 456), 'wangdoudou'}
2、特性
(1)、集合(set)是无序的
(2)、由不同的元素组成
(3)、元素类型必须是不可变的:数字,字符串,元组
(4)、创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典
(5)、集合去重性,相同的元素只保留一个
(6)、集合是可变类型
3、定义不可变集合:使用frozenset()方法
testset = frozenset("hello")
二、集合类的函数&方法
1、add(self, *args, **kwargs):添加元素,只能添加一个值
代码示例:
testset = {7, 1, 6, 2, 5, 3, 4}
print("testset原始的集合内容是:", testset)
testset.add("wangdoudou")
print("testset添加wangdoudou元素后的结果是:", testset)
testset.add(7)
print("testset添加7元素后的结果是:", testset)
输出结果:
2、clear(self, *args, **kwargs):清空集合
代码示例:
testset = {7, 1, 6, 2, 5, 3, 4}
print("testset原始的集合内容是:", testset)
testset.clear()
print("清空后的testset=", testset)
输出结果:
3、copy(self, *args, **kwargs):
代码示例:
testset = {7, 1, 6, 2, 5, 3, 4}
print("testset原始的集合内容是:", testset)
testset2 = testset.copy()
print("拷贝后的集合testset2为:", testset2)
输出结果:
4、difference(self, *args, **kwargs):求两个集合的差集,也就是左方独有的元素,也可用减号运算符操作
代码示例:
set1 = {1, 4, 6, 9, 18}
print("set1=", set1)
set2 = {2, 4, 6, 13, 21}
print("set2=", set2)
set3 = set1.difference(set2)
print("使用difference()函数求差集的结果是:", set3)
set4 = set2 - set1
print("使用-减号运算符求差集的结果是:", set4)
输出结果:
5、difference_update(self, *args, **kwargs):先求两个集合的差集,然后将差集赋值更新到原集合中
代码示例:
set1 = {1, 4, 6, 9, 18}
print("set1=", set1)
set2 = {2, 4, 6, 13, 21}
print("set2=", set2)
set1.difference_update(set2)
print("使用difference_update()函数将差值更新到集合中:", set1)
输出结果:
6、discard(self, *args, **kwargs):删除指定元素,不管元素存不存在都可以
代码示例:
testset = {7, 1, 6, 2, 5, 3, 4}
print("testset原始的集合内容是:", testset)
testset.discard("sss")
print("testset删除不存在的元素的结果是:", testset)
testset.discard(5)
print("testset删除存在的元素的结果是:", testset)
输出结果:
7、intersection(self, *args, **kwargs):求两个集合的交集,相当于 集合1&集合2
代码示例:
set1 = {1, 4, 6, 9, 18}
print("set1=", set1)
set2 = {2, 4, 6, 13, 21}
print("set2=", set2)
set3 = set1.intersection(set2)
print("使用intersection()函数求交集的结果是:", set3)
set4 = set1 & set2
print("使用&运算符求交集的结果是::", set3)
输出结果:
8、intersection_update(self, *args, **kwargs):求两个集合的交集并将交集更新到集合中
代码示例:
set1 = {1, 4, 6, 9, 18}
print("set1=", set1)
set2 = {2, 4, 6, 13, 21}
print("set2=", set2)
set1.intersection_update(set2)
print("使用intersection_update()将交集更新到集合中;", set1)
输出结果:
9、isdisjoint(self, *args, **kwargs):判断两个集合是否有交集,有,返回False,没有,返回True
代码示例:
set1 = {1, 4, 6, 9, 18}
print("set1=", set1)
set2 = {2, 4, 6, 13, 21}
print("set2=", set2)
print("使用isdisjoint()函数判断两个集合是否有交集:", set1.isdisjoint(set2))
输出结果:
10、issubset(self, *args, **kwargs):判断集合1是否为集合2的子集,相当于判断 集合1 <= 集合2
代码示例:
set1 = {1, 4, 6, 9, 18}
print("set1=", set1)
set2 = {2, 4, 6, 13, 21}
print("set2=", set2)
print("使用issubset()函数判断两个集合的父子集关系:", set1.issubset(set2))
输出结果:
11、issuperset(self, *args, **kwargs):判断集合1是否为集合2的父集 相当于判断 集合1 >= 集合2
代码示例:
set1 = {1, 4, 6, 9, 18}
print("set1=", set1)
set2 = {2, 4, 6, 13, 21}
print("set2=", set2)
print("issuperset()函数判断两个集合的父子集关系:", set1.issuperset(set2))
输出结果:
12、pop(self, *args, **kwargs):随机删除
代码示例:
testset = {7, 1, 6, 2, 5, 3, 4}
print("testset原始的集合内容是:", testset)
testset.pop()
print("testset随机删除后的结果是:", testset)
输出结果:
13、remove(self, *args, **kwargs):指定元素删除,指定的元素必须在集合中,否则会报错
代码示例:
testset = {7, 1, 6, 2, 5, 3, 4}
print("testset原始的集合内容是:", testset)
testset.remove(2)
print("testset移除元素2之后的内容是:", testset)
输出结果:
14、symmetric_difference(self, *args, **kwargs):求两个集合的交叉补集(将两个集合合并后去除相同的元素)
相当于 集合1 ^ 集合2
代码示例:
set1 = {1, 4, 6, 9, 18}
print("set1=", set1)
set2 = {2, 4, 6, 13, 21}
print("set2=", set2)
set3 = set1.symmetric_difference(set2)
print("使用symmetric_difference()函数求交叉补集的结果是:", set3)
set4 = set1 ^ set2
print("使用^异或运算符计算集合的交叉补集的结果是:", set4)
输出结果:
15、symmetric_difference_update(self, *args, **kwargs):求两个集合的交叉补集并将交叉补集更新到集合中
代码示例:
set1 = {1, 4, 6, 9, 18}
print("set1=", set1)
set2 = {2, 4, 6, 13, 21}
print("set2=", set2)
set1.symmetric_difference_update(set2)
print("使用symmetric_difference_update()函数将交叉补集更新到集合中:", set1)
输出结果:
16、union(self, *args, **kwargs):求两个集合的并集,相当于 集合1 | 集合2
代码示例:
set1 = {1, 4, 6, 9, 18}
print("set1=", set1)
set2 = {2, 4, 6, 13, 21}
print("set2=", set2)
set3 = set1.union(set2)
print("使用union()函数求两个集合的并集的结果是:", set3)
set4 = set1 | set2
print("使用|运算符求两个集合的并集的结果是:", set3)
输出结果;
17、update(self, *args, **kwargs):更新集合,参数为可迭代序列
代码示例:
set1 = {1, 4, 6, 9, 18}
print("set1=", set1)
set2 = {2, 4, 6, 13, 21}
print("set2=", set2)
set1.update(set2)
print("使用update()函数更新集合:", set1)
输出结果: