一.集合的定义
1.集合是无序的没有下标,集合中元素不能重复。
s = {1, 2, 3, 4}
ss = set(1, 2, 3, 4)
注意:使用{}种方式定义集合时,不要定义空集合(不然默认为dict)
二. 集合中元素的访问
集合中元素的访问
set[] #从0开始的下标
三.集合的功能
1.add
add(self, *args, **kwargs):将元素添加到集合中。如果元素已存在,则这不起作用。
set_data = {1, 2, 3, 4} set_data.add(5) print(set_data)
2.clear
clear(self, *args, **kwargs): 清空列表。set_data = {1, 2, 3, 4} set_data.clear() print(set_data)
3.copy
copy(self, *args, **kwargs):浅拷贝集合set_data = {1, 2, 3, 4} set_data.copy() print(set_data)
4.pop
pop(self, *args, **kwargs):随机移除元素,如果为空则抛出异常。set_data = {1, 2, 3, 4} set_data.pop() print(set_data)
5.remove
remove(self, *args, **kwargs):删除对应元素如果为空则抛出异常。set_data = {1, 2, 3, 4} set_data.remove(2) print(set_data)
6.discard
discard(self, *args, **kwargs):删除对应元素如果为空则不抛出异常。set_data = {1, 2, 3, 4} set_data.discard(4) print(set_data)
7.intersection and intersection_update
intersection(self, *args, **kwargs):将两个集合的交集作为新集合返回。set_data = {1, 2, 3, 4} set_data1 = {4, 5, 6, 7} print(set_data.intersection(set_data1))
intersection_update(self, *args, **kwargs):用自身和另一个集合的交集更新一个集合。set_data = {1, 2, 3, 4} set_data1 = {4, 5, 6, 7} print(set_data.intersection_update(set_data1)) print(set_data)
8.difference and difference-date
difference(self, *args, **kwargs):将两个或多个集合的差值作为新集合返回。即此集合中的所有元素,而不是其他元素。set_data = {1, 2, 3, 4} set_data1 = {4, 5, 6, 7} print(set_data.difference(set_data1))
difference_update(self, *args, **kwargs):从此集合中删除另一个集合的所有元素。set_data = {1, 2, 3, 4} set_data1 = {4, 5, 6, 7} print(set_data.difference_update(set_data1)) print(set_data)
9. union
union(self, *args, **kwargs):将集合的并集作为新集合返回。set_data = {1, 2, 3, 4} set_data1 = {4, 5, 6, 7} print(set_data.union(set_data1))
10.update
update(self, *args, **kwargs):用自身和其他集合的并集更新集合。set_data = {1, 2, 3, 4} set_data1 = {4, 5, 6, 7} print(set_data.update(set_data1)) print(set_data)
11.isdisjoint
isdisjoint(self, *args, **kwargs):如果两个集合具有空交集,则返回 True。set_data = {1, 2, 3, 4} set_data1 = {4, 5, 6, 7} print(set_data.isdisjoint(set_data1)) set_data2 = {1, 2, 3} set_data3 = {4, 5, 6} print(set_data2.isdisjoint(set_data3))
12.issubest
issubset(self, *args, **kwargs):报告另一个集是否包含此集。set_data = {1, 2, 3, 4} set_data1 = {4, 5, 6, 7} print(set_data.issubset(set_data1)) set_data2 = {1, 2, 3} set_data3 = {1, 2, 3} print(set_data2.issubset(set_data3))
13.issuperset
issuperset(self, *args, **kwargs):报告此集是否包含另一个集。
set_data = {1, 2, 3, 4} set_data1 = {4, 5, 6, 7} print(set_data.issuperset(set_data1)) set_data2 = {1, 2, 3} set_data3 = {1, 2, 3} print(set_data2.issuperset(set_data3))
14.symmetric_difference and symmetric_difference_update
symmetric_difference(self, *args, **kwargs):将两个集合的对称差值作为新集合返回。即恰好位于其中一个集合中的所有元素。set_data = {1, 2, 3, 4} set_data1 = {4, 5, 6, 7} print(set_data.symmetric_difference(set_data1)) print(set_data)
symmetric_difference_update(self, *args, **kwargs):使用自身和另一个的对称差异更新集合。set_data = {1, 2, 3, 4} set_data1 = {4, 5, 6, 7} print(set_data.symmetric_difference_update(set_data1)) print(set_data)
拓展
去重:
list_data = [1, 2, 2, 3, 4, 5] #列表中元素可以重复
set_data = set(list_data) #去重
list_data = set_data #将去重后的set转换成list
print(list_data) #打印去重后的list