1、认识集合
定义:
s={1,2,3,4,5}
s=set("hello")
s=set(["steven","job","dave"])
用set和可迭代对象进行定义时,相当于执行了for循环
特点:
不同元素组成
无序
集合中的元素必须是不可变 (字符串,数字,元祖)
2、常用方法
.add("a") #增加一个元素
.clear() #清空
.copy() #浅拷贝
.pop() #随机删
.remove("job") #指定删,删除元素不存在时会报错
.discard("job") #指定删,删除元素不存在时不会报错
3、基本运算
交集,并集,差集
a_s={"steve","job","dave","max"} b_s={"job","dave","mark"} print(a_s,b_s) #求交集 print(a_s.intersection(b_s)) #写法1 print(a_s&b_s) #写法2 #求并集 print(a_s.union(b_s)) #写法1 print(a_s|b_s) #写法2 #求差集,相当于存在于左边,但不存在于右边的集合 print(a_s.difference(b_s)) #写法1 print(a_s-b_s) #写法2 print(b_s-a_s)
结果:
{'dave', 'steve', 'max', 'job'} {'dave', 'mark', 'job'} {'dave', 'job'} {'dave', 'job'} {'job', 'dave', 'mark', 'steve', 'max'} {'job', 'dave', 'mark', 'steve', 'max'} {'steve', 'max'} {'steve', 'max'} {'mark'}
4、其他方法
a_s={"steve","job","dave","max"} b_s={"job","dave","mark"} c_s={"job","dave"} #交叉补集 ,交集的补集,相当于并集减去交集的部分的集合 print(a_s.symmetric_difference(b_s)) #写法1 print(a_s^b_s) #写法2 #结果为:{'mark', 'max', 'steve'} #.difference_update() a_s.difference_update(b_s) # 相当于 a_s=a_s-b_s print(a_s) #结果为:{'max', 'steve'} #.isdisjoint() 判断有没有交集,没有交集返回true print(a_s.isdisjoint(b_s)) #结果为:false #.issubset() 是否是某个集合的子集。相当于是s1<=s2 print(c_s.issubset(a_s)) #写法1 print(c_s<=a_s) #写法2 #.issuperset() 是否是某个集合的父集。相当于是s1>=s2 print(a_s.issuperset(c_s)) #结果为 true #.update() 可以增加多个值。可以传元祖,列表等可迭代对象 a_s.update(b_s) print(a_s) b_s.update(("bob","zhou")) print(b_s) #结果为: #{'steve', 'job', 'max', 'dave', 'mark'} #{'bob', 'mark', 'job', 'dave', 'zhou'}
""" 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. (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. 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. (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. """ pass def issuperset(self, *args, **kwargs): # real signature unknown """ Report whether this set contains another set. """ 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. (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 """ 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. """ passsesetset