定义空集合:d = set()
不能用{}? 因为这样定义字典? 如下图所示:
s = {}
print(s,type(s))
?
定义非空集合:2种方法 如下图所示:
将可迭代的字符串、列表、元组放入集合中,如果将可迭代的字典放入集合中值会丢失 键放入集合中!!!
s1 = {1,2,3}
print(s1)
s2 = set("hello world")
print(s2) # 可迭代的字符串
s3 = set([1,2,3,4,5])
print(s3) # 可迭代的列表
s4 = set((1,3,1,2,0)) # 可迭代的元组
print(s4)
2.1 集合中的元素不重复:
s3 = set([1,2,3,4,5,1,0,2,3,4,5])
print(s3)
??
2. 2集合中的元素无序:下图所示 并不是按照“hello world”的顺序放入集合中
s2 = set("hello world")
print(s2)
??
集合中放的数据类型必须是不可变类型比如数组、字符串、False等等
不能是列表、字典 、集合(因为集合本身也是可变类型)如下图所示:
s4 = {1,2,False,None,"hello",(1,),[1,2]}
print(s4)
?
集合的遍历只有一种方法:
s4 = {1,2,False,None,"hello",(1,)}
for s in s4:
print(s)
5.1 len 打印集合的长度? ? ?in? 判断元素是否在集合中
# 集合可以用len , in
s4 = {1,2,False,None,"hello",(1,)}
print(len(s4)) # 6
print(3 in s4,2 in s4)
5.2? 添加? add? 将指定元素加到集合中? update??将可迭代字符串加到集合中
s = {1,2,3,4,5,6}
s1 = {3,4,5,6,7,8,9}
s.add((3,4,5))
print(s)
s.update("345")
print(s)
5.3? pop 随机删除集合中一个元素? ?
? ? ? ?remove 删除指定元素? 没有返回值? 不存在就报错
? ? ? ?discard??删除指定元素 找不到就忽略 还是原集合
? ? ? ?clear? 清空集合
print(s.pop()) # 随机删除1个元素
print(s.remove(7),s) # 删除指定元素 没有返回值 不存在就报错
print(s.discard(7),s) # 删除指定元素 找不到就忽略 还是原集合
print(s.clear()) # 清空集合
6.1 交集 你有我也有
s = {1,2,3,4,5,6}
s1 = {3,4,5,6,7,8,9}
print(s&s1) # {3, 4, 5, 6}
print(s.intersection(s1)) # {3, 4, 5, 6}
6.2 并集 你我加一起
print(s.union(s1)) # {1, 2, 3, 4, 5, 6, 7, 8, 9}
print(s|s1) # {1, 2, 3, 4, 5, 6, 7, 8, 9}
6.3 补集? 全集 - 集合?
s = {1,2,3,4,5,6}
s1 = {3,4,5,6,}
print(s-s1) # s1的补集是{1, 2}
print(s1.symmetric_difference(s))
?6.4 差集 我有你没有
print(s.difference(s1)) # s有的s1没有 {1, 2}
print(s1.difference(s)) # s1有的s没有 {8, 9, 7}