第十二篇 集合(学会集合 看我这一篇文章就够啦!!!)

发布时间:2024年01月20日

1.集合的定义:

定义空集合: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.集合的两种特点:

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)  

??

?3. 集合中的数据类型:

集合中放的数据类型必须是不可变类型比如数组、字符串、False等等

不能是列表、字典 、集合(因为集合本身也是可变类型)如下图所示:

s4 = {1,2,False,None,"hello",(1,),[1,2]}
print(s4)

?

4. 集合的遍历:

集合的遍历只有一种方法:

s4 = {1,2,False,None,"hello",(1,)}
for s in s4:
    print(s)

5. 集合的常用操作:

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. 核心操作:交并补差

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}

文章来源:https://blog.csdn.net/qq_65396710/article/details/135658047
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。