day5:python学习之集合

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)
View Code
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

  

原文地址:https://www.cnblogs.com/zyms/p/9949141.html