set
特点:
集合 是一个无序的, 不重复的数据组合,它的主要作用有:
去重 把一个列表变成集合, 就自动去重了
集合中的元素必须是不可变元素
创建集合
s = {1,2,3,4,5,3,5,1} print(s) print(type(s)) # {1, 2, 3, 4, 5} # <class 'set'>
交集
s = {1,2,3,4,5,3,5,1} ss = {2,3,4} # & # intersection() print("s与ss的交集: ",s.intersection(ss)) print("s与ss的交集: ",s&ss) # s与ss的交集: {2, 3, 4} # s与ss的交集: {2, 3, 4}
并集
s = {1,2,3,4,5,3,5,1} ss = {2,3,4} # 并集 等于2个列表去重
# union # |
print("s与ss的并集: ",s.union(ss)) print("s与ss的并集: ", s|ss )
# s与ss的并集: {1, 2, 3, 4, 5} # s与ss的并集: {1, 2, 3, 4, 5}
差集
s = {1,2,3,4,5,3,5,1} ss = {2,3,4} # difference #- print("s与ss的差集: ",s.difference(ss)) print("s与ss的差集: ",s-ss) # s与ss的差集: {1, 5} # s与ss的差集: {1, 5}
对称差集
s = {1,2,3,4,5,3,5,1} ss = {2,3,4,333} #symmetric_difference #^ print(s.symmetric_difference(ss)) print(s^ss) # {1, 5, 333} # {1, 5, 333}
issubset
# #issubset s = {1,2,3,4,5,3,5,1,333} ss = {2,3,4,333} # ss是s的子集 print(ss.issubset(s)) # True # s 是ss的子集 print(s.issubset(ss)) # False
issuperset
# #issuperset s = {1,2,3,4,5,3,5,1,333} ss = {2,3,4,333} # s 是ss的父集 print(s.issuperset(ss)) # True
# ss是 s的父集 print(ss.issuperset(s)) # False
元素的添加
a = {1,2} a.update([1,34,5,6,67]) # update 添加多个元素 a.add("wwww") # add 添加一个元素 print(a)
元素的删除
discard 存在就删除, 不存在也不报错
s = {1,2,3,4,5,3,5,1,333} # # 元素的删除 # discard 存在就删除, 不存在 也不报错 s.discard('2ww') print(s) # {1, 2, 3, 4, 5, 333}
remove
s = {1,2,3,4,5,3,5,1,333} s.remove('x') # 不存在会抛出 KeyError错误
Traceback (most recent call last): File "D:/python/luffycity/元组/集合类型.py", line 135, in <module> s.remove('x') # 不存在会抛出 KeyError错误 KeyError: 'x'
元素的源码
class set(object): """ set() -> new empty set object set(iterable) -> new set object Build an unordered collection of unique elements. """ def add(self, *args, **kwargs): # real signature unknown """ Add an element to a set. This has no effect if the element is already present. """ pass def clear(self, *args, **kwargs): # real signature unknown """ Remove all elements from this set. """ pass def copy(self, *args, **kwargs): # real signature unknown """ Return a shallow copy of a set. """ pass def difference(self, *args, **kwargs): # real signature unknown """ Return the difference of two or more sets as a new set. 相当于 s1 - s2 差集 (i.e. all elements that are in this set but not the others.) """ pass def difference_update(self, *args, **kwargs): # real signature unknown """ Remove all elements of another set from this set. """ pass def discard(self, *args, **kwargs): # real signature unknown """ Remove an element from a set if it is a member. 与remove功能相同,删除元素不存在时不会抛出异常 If the element is not a member, do nothing. """ pass def intersection(self, *args, **kwargs): # real signature unknown """ Return the intersection of two sets as a new set. 相当于 s1&s2 求交集 (i.e. all elements that are in both sets.) """ pass def intersection_update(self, *args, **kwargs): # real signature unknown """ Update a set with the intersection of itself and another. """ pass def isdisjoint(self, *args, **kwargs): # real signature unknown """ Return True if two sets have a null intersection. """ pass def issubset(self, *args, **kwargs): # real signature unknown """ Report whether another set contains this set. 相当于 s1 <=s2 """ pass def issuperset(self, *args, **kwargs): # real signature unknown """ Report whether this set contains another set. 相当于 s1 >=s2 """ pass def pop(self, *args, **kwargs): # real signature unknown """ Remove and return an arbitrary set element. Raises KeyError if the set is empty. """ pass def remove(self, *args, **kwargs): # real signature unknown """ Remove an element from a set; it must be a member. If the element is not a member, raise a KeyError. """ pass def symmetric_difference(self, *args, **kwargs): # real signature unknown """ Return the symmetric difference of two sets as a new set. 相当于 s1^s2 对称差集 (i.e. all elements that are in exactly one of the sets.) """ pass def symmetric_difference_update(self, *args, **kwargs): # real signature unknown """ Update a set with the symmetric difference of itself and another. """ pass def union(self, *args, **kwargs): # real signature unknown """ 并集 相当于s1|s2 Return the union of sets as a new set. (i.e. all elements that are in either set.) """ pass def update(self, *args, **kwargs): # real signature unknown """ Update a set with the union of itself and others. """ pass