0. 集合的作用及特点
集合具有去重和关系测试两大作用,它具有无序的特点。
list1 = [1,2,3,4,5,7,6,8,6,4] list1 = set(list1) print(list1)
>>>:{1, 2, 3, 4, 5, 6, 7, 8}
1, 几何关系
(1)取交集
取交集有两种方法,一种是直接采用函数,一种使用运算符
list2 = set([2,6,8,9,0])
list1.intersection(list2) 或者 list1 & list2
1 list1 = [1,2,3,4,5,7,6,8,6,4] 2 list1 = set(list1) 3 list2 = [2,3,4,8,9,0] 4 list2 = set(list2) 5 #取交集 6 print(list1.intersection(list2)) 7 print(list1 & list2)
list1 = [1,2,3,4,5,7,6,8,6,4] list1 = set(list1) list2 = [2,3,4,8,9,0] list2 = set(list2) #取交集 print(list1.intersection(list2)) print(list1 & list2)
>>>:{8, 2, 3, 4}
>>>:{8, 2, 3, 4}
(2) 取并集
list1.union(list2) 或 list1 | list2
#取并集 print(list1.union(list2)) print(list1 | list2)
>>>:{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
>>>:{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
(3) 求差集
list1.difference(list2) #in list1 but not in list2
#差集 print(list1.difference(list2))#in list1 but not in list2 print(list2.difference(list1))#in list2 but not in list1
>>>:{1, 5, 6, 7}
>>>:{0, 9}
(4)子集:主要是判断list1是否为list2的子集
list1.issubset(list2) #是,则输出True;不是,则输出False
print(list1.issubset(list2))#判断list1是否为list2的子集
>>>:False
(5)父集
list1.issuperset(list2)
print(list1.issuperset(list2))
>>>:False
list3 =set([1,3,7]) print(list1.issuperset(list3)) >>>:True
(6)对称差集
list1.symmetric_difference(list2) 或 list1 ^ list2
print(list1.symmetric_difference(list2)) print(list1^list2)
>>>:{0, 1, 5, 6, 7, 9}
>>>:{0, 1, 5, 6, 7, 9}
2. 基本操作:增删改查
list1.add(30) #添加一项
list1.update([33,56,77,90]) #添加多项
list1.remove('dd') #删除一项,如果集合中不存在该元素,则会报错
list.pop() #删除任意一个元素
list.discard('dd') #如果集合中不存在该元素,则返回None