文章目录
- 集合set
 
- 定义
 - 基本操作
 
- 创建空集合和有默认值的集合
 - 添加及删除
 - 其他容器和集合的相互转换
 - 获取所有元素
 
- 运算
 
- 举个例子
 
- 集合推导式
 
集合set
定义
由一系列不重复的不可变类型变量组成的可变映射容器。相当于只有键没有值的字典
基本操作
基本操作  | 方式  | 
创建空集合  | set()  | 
创建具有默认值的集合  | ①{1, 2, 3} ②set(可迭代对象)  | 
添加元素  | add  | 
删除元素  | remove  | 
创建空集合和有默认值的集合
代码:
#创建空集合
s01 = set()
print(s01)
print("--------------")
#创建有默认值的集合
s01 = {1, 2, 3, 4}
s02 = set("abcde")
print(s01)
print(s02)结果:
添加及删除
代码:
s02 = set("abcde")
#添加
s02.add("A")
s02.add("B")
print(s02)
print("--------------")
#删除
s02.remove("d")
#若该元素不存在,则会报错
print(s02)结果:
其他容器和集合的相互转换
代码:
#其他容器 --> 集合
s01 = set([1,3,5,7,9])
#集合 --> 其他容器
l01 = list(s01)
t01 = tuple(s01)
print(s01)
print(l01)
print(t01)结果:
获取所有元素
代码:
s02 = set("abcde")
for item in s02:
    print(item)结果:
运算
符号  | 运算  | 
&  | 交集  | 
|  | 并集  | 
-  | 补集  | 
^  | 对称补集  | 
<  | 子集  | 
>  | 超级  | 
举个例子
代码:
s01 = {2, 3, 4, 5}
s02 = {4, 5, 6, 7}
#交集
s03 = s01 & s02 # {4, 5}
print(s03) 
#并集
s04 = s01 | s02 # {2, 3, 4, 5, 6, 7}
print(s04)
#补集
s05 = s01 ^ s02 # {2, 3, 6, 7}
print(s05)
s06 = s01 - s02 # {2, 3}
print(s06)
s07 = s02 - s01 # {6, 7}
print(s07)
#子集和超集
sA = {1, 2, 3}
sB = {1, 2}
re01 = sA < sB #False 说明sA不是sB的子集
re02 = sA > sB #True 说明sA是sB的超集
print(re01)
print(re02)
#相同和不同
s_1 = {1, 2, 3}
s_2 = {1, 2, 3}
re = s_1==s_2 #True 说明s_1与s_2相同
print(re)结果:
集合推导式
- 定义
使用简易方法,将可迭代对象转换为集合。 - 语法
 
{表达式 for 变量 in 可迭代对象}
{表达式 for 变量 in 可迭代对象 if 条件}- 例子
 
代码:
s01 = {item**2 for item in range(1, 9) if item % 2 == 0}
print(s01)结果:










