一、集合的定义
1、s = set (),定义空集合
set(可迭代)非空集合
# 定义空集合,set(可迭代)非空集合
s = set()
print(type(s))
运行结果
2.s = {}不可以定义空集合
s={}不能定义空集合,因为这是字典形式
# 不能定义一个空集合
s = {}
print(type(s),s)
运行结果
2.定义一个简单的集合
set{1,2,3}形式
# 定义一个简单的集合
s1 = {1,2,3,4}
print(type(s1),s1)
运行结果
3.集合只能存放不可变的数据类型
# 集合中只能存放不可变的数据类型
s = {1,3.14,"abc",None,False,True,(1,2,3)}
print(type(s),s)
运行结果
二、集合的特性
1、不重复和无序
1.1、将列表中的元素放入集合
可以得到运行结果是不重复的,而且值也是没有先后顺序的
# 将列表中的元素放入集合,相同元素只保留一个,值也是无序的
s3 = set(["a",2,2,1,4])
print(type(s3),s3)
运行结果
1.2、将元组中的元素放入集合中
# 将元组中的元素放入集合中,相同元素只保留一个,值是无序的
s4 = set(("a","b",4,2,3))
print(type(s4),s4)
运行结果
1.3、将字典中所有键放入集合
# 将字典中所有键放入集合,值会丢失
s5 = set({"name":"赵醒","age":"18"})
print(type(s5),s5)
运行结果
三、集合的遍历
集合的遍历只有一种,for e in set
1、for e in set
# 集合中只能存放不可变的数据类型
s = {1,3.14,"abc",None,False,True,(1,2,3)}
# print(type(s),s)
# 集合中只有一种遍历方法、
for e in s:
print(e)
运行结果
四、集合的常见操作方法
集合只能存放不可变的数据类型,集合本身是一种可变的数据类型。
1、in
判断原始数据是否在集合内部
s = {1,2,3,4,3}
print(len(s))
运行结果
2、len
获取集合元素的个数
# 集合可以使用in与len
s = {1,2,3,4,3}
# print(len(s))
print(5 in s, 8 in s)
运行结果
3、添加
3.1 add
将元素添加到集合
s2 = {1,2,3,4}
# 添加元素
r = s2.add(7)
print(s2)
运行结果
3.2 update({1,4,3,7,6})
合并一个新集合到原有集合,没有返回值,内容是可迭代的
# 合并新集合到原有集合,无返回值,其中内容是可迭代的
s2 = {1,2,3,4}
s2.update({1,4,3,7,6})
print(s2)
运行结果
4、删除
4.1 remove()
删除集合中指定元素,不存在则报错,只可传入一个参数
# 删除一个指定的元素,如果不存在则报错,只可传入一个参数
s2 = {1,2,3,4}
s2.remove(2)
print(s2)
运行结果
4.2 discard()
忽略,删除集合中指定的元素,如果存在则删除,不存在也不报错
# 忽略,如果有则删除,如果不存在也不报错
s2 = {1,2,3,4}
s2.discard(2)
print(s2)
运行结果
4.3 clear()
清空集合
# 清除元素
s2 = {1,2,3,4}
s2.clear()
print(s2)
运行结果
4.4 pop()
随机删除任意一个元素,有返回值
# 随机删除一个,有返回值
s2 = {1,2,3,4}
r = s2.pop()
print(s2,r)
运行结果
5、集合核心操作
5.1 交集
交集,就是两个集合,你有我也有
方法一、&
s3 = {1,2,3}
s4 = {2,3,4,5}
# 交集,你有我也有
s5 = s3 & s4
print(s5)
运行结果
方法二、intersection
s3 = {1,2,3}
s4 = {2,3,4,5}
s5 = s3.intersection(s4)
print(s5)
5.2 差集
两个集合相减
方法一 -
# 差集:我有你没有
s3 = {1,2,3}
s4 = {2,3,4,5}
s5 = s3 - s4
print(s5)
运行结果
方法二、 difference
# 差集:我有你没有
s3 = {1,2,3}
s4 = {2,3,4,5}
s5 = s3.difference(s4)
print(s5)
5.3 并集
两个集合,你有的或者我也有
方法一、|
s3 = {1,2,3}
s4 = {2,3,4,5}
# 并集,你有或者我也有
s5 = s3 | s4
print(s5)
运行结果
方法二、union
s3 = {1,2,3}
s4 = {2,3,4,5}
s5 = s3.union(s4)
print(s5)
5.4 补集
方法一、-
# 补集 全集(U)
U = {1,2,3,4,5}
A = {2,3,4}
print(U - A)
运行结果
方法二、symmetric_difference
U = {1,2,3,4,5}
A = {2,3,4}
print(U.symmetric_difference(A))
5.5 超集 issuperset
s1 = {1,2,3,4,5}
s2 = {3,4}
# 可以把s1称为全集
# 超集
print(s1.issuperset(s2))
print(s2.issuperset(s1))
运行结果
5.6 子集 issubset
s1 = {1,2,3,4,5}
s2 = {3,4}
s1.intersection_update(s2)
print(s1)
运行结果