- 本节内容:
- 一.集合基操
- 二.冰冻集合
- 三.集合推导式
- 四.集合运算
- 并集运算函数 union() update()res = vars1.union(vars2)
print(res) _#返回并集结果,新的集合 - 差集运算 difference() difference_update()_res = vars1.difference(vars2)
print(res) #返回差集结果,新的集合 - 对称差集 symmetric_difference() symmetric_difference_update()_res = vars1.symmetric_difference(vars2)
print(res) #返回对称差集结果,新的集合 - 检测超集和子集vars1 = {1,2,3,4,5}
vars2 = {1,2,3}
我想当第一
本节内容:
一.集合基操
可以使用{}定义集合;
可以使用set()进行集合的定义;
使用集合推导式完成集合的定义
_#定义集合
_vars = {123,123,3.14,‘abc’,(1,2,3)}
print(vars)
注意:
1.集合中的元素是无序的
2.集合中的元素不能重复
3.True在集合中表示1,False表示0.和数字只能存在一个
#检测集合中的值
_res = ‘abc’ in vars
print(res)
#获取集合中元素的个数
res =len(vars)
print(res)
#集合的遍历
for i in vars:
print(i)
#向列表中追加元素
res = vars.add(‘de’)
print(res)
print(vars)
#指定删除的元素-返回None,不存在则报错
res = vars.remove(‘de’)
print(vars)
#指定删除的元素,不存在也不会报错
res = vars.discard(‘dddd’)
#clear()清空集合
vars.clear()
print(vars)
#更新集合-添加集合中的所有非重复元素
_vars.update({555})
print(vars)
二.冰冻集合
#冰冻集合
‘’’
语法:只能使用frozenset()函数进行定义
1.一经定义不可修改
2.冰冻集合只能做集合相关的运算
3.可以将其他任何类型的容器数据转换为冰冻集合
‘’’
#定义
_vars = frozenset({1,‘a’,2,3})
print(vars)
#遍历
_for i in vars:
print(i)
关于冰冻集合了解即可
三.集合推导式
_#1)普通推导式varset = {1,2,3,4}
newset = {i<<1 **for **i **in **varset}
print(newset)
_#2)带有条件表达式的推导式newset = {i<<1 **for **i **in **varset **if **i%2 == 0}
print(newset)
#3)带有多循环的集合推导式
#普通方法
_var1 = {1,2,3}
var2 = {4,5,6}
newset = set()
for i in var1:
for j in var2:
newset.add(i+j)
print(newset)
#集合推导式_
newset = {i+j for i in var1 for j in var2}
print(newset)
_#4)带条件表达式的多循环集合表达式newset = {i+j for i in var1 for j in var2 if i %2 == 0 and j %2 == 0}
print(newset)
四.集合运算
交集
& set.intersection() set.intersection_update() 共有的
并集
| union() update() 合并并去重
差集
- difference() difference_update() s1对s2对差集:s1有而s2没有的;反之亦然
对称差集
^ symmetric_difference() symmetric_difference_update() 去掉两个集合都有的元素
1.符号运算
#求两个集合交集 &res = vars1 & vars2
print(res)
#求并集,去重 |res = vars1|vars2
print(res)
#求差集 -res = vars1 - vars2
print(res) #vars1有,而vars2没有
res = vars2 - vars1
print(res) #vars2有,而vars1没有
#对称差集 ^res = vars1 ^ vars2
print(res)
2.函数运算
#交集运算函数 set.intersection() set.intersection_update()res = vars1.intersection(vars2)
print(res) #返回交集的结果 新集合
res = vars1.intersection_update(vars2)
print(res) #没有返回值
print(vars1) #计算交集并赋值给第一个集合
并集运算函数 union() update()res = vars1.union(vars2)
print(res) _#返回并集结果,新的集合
res = vars1.update(vars2)
print(res) #没有返回值
print(vars1) #求并集并且把结果赋值给第一个集合
差集运算 difference() difference_update()_res = vars1.difference(vars2)
print(res) #返回差集结果,新的集合
res = vars1.difference_update(vars2)
print(res) #没有返回值
print(vars1) #求差集并且把结果赋值给第一个集合
对称差集 symmetric_difference() symmetric_difference_update()_res = vars1.symmetric_difference(vars2)
print(res) #返回对称差集结果,新的集合
res = vars2.symmetric_difference_update(vars2)
print(res) #没有返回值
print(vars1) #求对称差集并且把结果赋值给第一个集合
检测超集和子集vars1 = {1,2,3,4,5}
vars2 = {1,2,3}
_#issuperset()检测是否为超集res = vars1.issuperset(vars2)
print(res)
_#issubset()检测是否为子集res = vars2.issubset(vars1)
print(res)