集合
集合的基本操作和常规函数
1 # 集合定义 2 varset = {123,'abc','love',True,(1,2,3),False,0,3.1415926,123,1} 3 # 1.无序 4 # 2.False在集合中表示0,所以False和0只能存在一个 5 # 3.元素的值不能重复 6 print(varset) 7 8 # 向集合中添加元素 9 varset.add('def') 10 print(varset) 11 12 # 向集合中删除元素. 13 14 # varset.pop() #随机删并返回删除的元素 15 16 17 18 # varset.remove('abc') #指定删,没有时报错 19 # print(varset) 20 # varset.discard() #指定删,没有时不报错 21 # varset.discard(123) 22 # print(varset) 23 24 # update(*args) 更新集合 *args为容器 25 # varset.update([1,2,3,4,5,6]) 26 # print(varset) 27 28 # copy() 浅拷贝 当前集合中的浅拷贝并不存在集合中的元素深拷贝的问题 29 ''' 30 当前集合中的浅拷贝并不存在集合中的元素深拷贝的问题 31 因为集合中的元素都是不可以被更改的(包括元组和冰冻集合) 32 ''' 33 # res = varset.copy() 34 # print(res) 35 # 36 # # 冰冻集合的定义 37 # v = frozenset((1,2,3)) 38 # print(v) 39 #
集合运算
# 集合运算 ''' 集合运算 交集 & set.intersection(set1) 返回新的集合 set.intersection_update(set1) 无返回值,重新赋值给调用的集合 并集 | union() 返回新的集合 update() 无返回值,重新赋值给调用的集合 差集 - difference() 返回新的集合 vars1.difference_update() 无返回值,重新赋值给调用的集合 对称差集 ^ --(掉两集合中重复的部分) symmetric_difference() 返回新的集合 symmetric_difference_update() 无返回值,重新赋值给调用的集合 ''' vars1 = {1,2,3,4,5,6} vars2 = {5,6,7,8,9} # # 交集 # res = vars1 & vars2 # print(res) # # # 并集 # res = vars1 | vars2 # print(res) # # # 差集 # res = vars1 - vars2 # print(res) # # # 对称差集 # res = vars1 ^ vars2 # print(res) # 交集运算函数 # res = vars1.intersection(vars2) #返回交集 # vars1.intersection_update(vars2) # print(vars1) # 检测超集 与子集 vars1 = {1,2,3} vars2 = {4,5} res = vars1.issuperset(vars2) print(res) res = vars2.issubset(vars1) print(res) # 检测两个集合是否不相交 res = vars1.isdisjoint(vars2) print(res)