集合以{}形式表现,一个集合中的元素各不相同,即集合体现为去重的特性。主要用于关系测试,常见的集合操作:交集、并集、插件、子集、父集、对称差集等。
设置集合:
list_1 = [1,3,4,5,7,9,4]
print(list_1,type(list_1))
list_1 = set(list_1)
list_2 = set([2,4,6,8,5,10])
print(list_1,list_2)
结果:{1, 3, 4, 5, 7, 9} <class 'set'>
{1, 3, 4, 5, 7, 9} {2, 4, 5, 6, 8, 10}
一、英文关系测试
1、交集 intersection
print(list_1.intersection(list_2)) ##取list1和list2都有的元素
结果:{4, 5}
2、并集 union
print(list_1.union(list_2)) ##取list1和list2所有的元素
结果:{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
3、差集 difference
print(list_1.difference(list_2)) ##在list1中取list2中没有的元素
结果:{1, 3, 9, 7}
4、子集 issubset
list_3 = set([1,3,5])
print(list_3.issubset(list_1)) ##判断list3是否为list1的元素
结果:True
5、父集 issuperset
print(list_1.issuperset(list_3)) ##判断list1是否为list3的元素
结果:True
6、对称差集
print(list_1.symmetric_difference(list_2)) ##取list1和list2所有的元素并去掉都有的元素
结果:{1, 2, 3, 6, 7, 8, 9, 10}
二、逻辑运算符关系测试
1、交集 &
print(list_1 & list_2)
2、并集 |
print(list_1 | list_2)
3、差集 -
print(list_1 - list_2)
4、对称差集 ^
print(list_1 ^ list_2)
三、集合常用方法
1、add
list_1.add(66)
print(list_1)
结果:{1, 66, 3, 4, 5, 7, 9} ##元素66已经加到list1中
2、update
list_1.update([33,44,55])
print(list_1)
结果:{1, 66, 3, 4, 5, 33, 7, 9, 44, 55} ##元素33,44,55加到list1中
3、remove
作用:删除集合中一个元素,若有这个元素会删除,但不会显示在屏幕上;若没这个元素则会报错
print(list_1.remove(77))
结果:
None
Traceback (most recent call last):
File "F:/Python/day01/day_03/set.py", line 27, in <module>
print(list_1.remove(77))
KeyError: 77
4、pop
作用:随机删除集合中的一个元素并将删除的元素显示在屏幕上
print(list_1.pop())
print(list_1.pop())
结果:
1
3
5、discard
作用:删除集合中元素,若没有也不会报错
print(list_1.discard(4))
print(list_1.discard(77))
print(list_1)
结果:
None
None
{33, 5, 7, 9, 44, 55}
6、update
作用:批量向集合中添加元素
list_1.update([33,44,55])
print(list_1)
结果:{33, 4, 5, 7, 9, 44, 55}