#不可变类型:字符串、数字、元组、
#可变类型:列表、字典
#集合:是由不同元素组成; 无序; 集合中的元素必须是不可变类型
#创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
#1.集合的创建
s = set("hello")
print(s)
#结果:{'h', 'l', 'e', 'o'}
#集合(set)是一个无序的不重复元素序列。
s1 = set(["a","b",126,"a"])
print(s1)
#结果:{'a', 'b', 126}
#2.方法
#2.1 add
s = {1,2,3,4,5,6}
s.add("sd")
print(s)
#结果:{1, 2, 3, 4, 5, 6, 'sd'}
#2.2 clear
s.clear()
print(s)
#结果:set()
#2.3 copy
s = {1,2,3,4,5,6}
s.copy()
print(s)
#结果:{1, 2, 3, 4, 5, 6}
#2.4 pop:随机删除 remove:指定删除
s = {"sd",1,2,3,4,5,6}
s.pop()
print(s)
#结果:{2, 3, 4, 5, 6, 'sd'}
s1 = {"sd",1,2,3,4,5,6}
s1.remove(5)
print(s1)
#结果:{1, 2, 3, 4, 'sd', 6}
s2 = {"sd",1,2,3,4,5,6}
s2.discard("sdcc") #元素不存在不会报错
print(s2)
#3.关系运算
python_1 = ["wsx","jcy","yjt","asd"]
linux_1 = ["wsx","jcy","sas"]
python_and_linux =[]
for p in python_1:
if p in linux_1:
python_and_linux.append(p)
print(python_and_linux)
#结果:['wsx', 'jcy']
#3.1交集
p_s = set(python_1)
l_s =set(linux_1)
print(p_s.intersection(l_s)) #交集∩
#结果:{'jcy', 'wsx'}
print(p_s&l_s)
#结果:{'jcy', 'wsx'}
#3.2并集
print(p_s.union(l_s))
print(p_s|l_s)
#结果:{'yjt', 'asd', 'wsx', 'sas', 'jcy'}
#3.3差集
print(p_s-l_s)
print(p_s.difference(l_s))
#结果:{'asd', 'yjt'}
#3.4交叉补集:去掉两集合共同的部分的集合
print(p_s.symmetric_difference(l_s))
print(p_s^l_s)
#结果:{'asd', 'yjt', 'sas'}
#3.5 isdisjoint如果两个集合的并集是空的话,返回True
p_s = {"wsx","jcy","yjt","asd"}
l_s = {"a","b","c"}
print(p_s.isdisjoint(l_s))
#结果:True
#3.6 issubset:s是否为p的子集
p = {1,2,3}
s = {1,2}
print(s.issubset(p))
#结果:True
print(p.issuperset(s)) #p是否为S的父集
#结果:True
#s.update(p) #将S更新,更新多个值
#s.add(5) #add是更新一个值
s.update([6,7])
print(s)
本文深入探讨了Python中集合的基本概念、创建方式及多种操作方法,包括add、clear、copy、pop、remove等,并介绍了集合之间的关系运算如交集、并集、差集、交叉补集等,以及集合的特殊判断方法如isdisjoint、issubset和issuperset。





