鄙人学习笔记
开发工具:Spyder
集合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)
结果: