1.集合是一个无序的不重复元素序列
用于存储唯一的元素
2.创建集合
可以{}或者set()
但创建空集合必须用set();{}是用来创建空字典的
3.集合的运算
交集:&
a = {0, 1, 2, 3, 4}
b = {0, 2, 6}
intersection = a & b
print(intersection) # 输出:{0, 2}
法二:intersection() 方法获取交集
# 定义两个集合
a = {0, 1, 2, 3, 4}
b = {0, 2, 6}
intersection = a.intersection(b)
print(intersection) # 输出:{0, 2}
注意:
在使用集合进行交集操作时,需要确保操作的对象是集合类型
如果是列表(list)或其他可迭代对象,需要先将其转换为集合类型。
a = [0, 1, 2, 3, 4]
b = [0, 2, 6]
# 将列表转换为集合,并获取交集
intersection = set(a).intersection(set(b))
print(intersection) # 输出:{0, 2}
并集:|
a = [0,1,2,3,4]
b = [0,2,6]
list(set(a) | set(b)) #输出:[0, 1, 2, 3, 4, 6]
差集(补集):-
前有后无
a = [0,1,2,3,4]
b = [0,2,6]
list(set(b) - set(a)) #求b中有而a中没有的元素,输出:[6]
list(set(a) - set(b)) #求a中有而b中没有的元素,输出:[1, 3, 4]
不同时存在的元素:^
a = [0,1,2,3,4]
b = [0,2,6]
list(set(a) ^ set(b)) # 使用 "^" 运算求a与b的对称差集,输出:[1, 3, 4, 6]
4.集合的基本操作
添加元素 s.add( x ) 将元素 x 添加到集合 s 中,如果元素已存在,则不进行任何操作
s.update( x ) 还有一个方法,也可以添加元素,且参数可以是列表,元组,字典等
移出元素 s.remove( x ) 将元素 x 从集合 s 中移除,如果元素不存在,则会发生错误
s.discard( x ) 还有一个方法也是移除集合中的元素,且如果元素不存在,不会发生错误。
s.pop() 随机删除集合中的一个元素;set 集合的 pop 方法会对集合进行无序的排列,然后将这个无序排列集合的左面第一个元素进行删除。
计算集合中元素的个数 len(s)
清空集合 s.clear()
判断元素是否在集合中存在 x in s 判断元素 x 是否在集合 s 中,存在返回 True,不存在返回 False
5.集合推导式
{ 表达式 for 变量 in 集合 }
setnew = {i**2 for i in (1,2,3)}
setnew
{1, 4, 9}