一、set集合的特性
- 访问速度快
- 天生解决重复问题
二、set变量申明
- s1 = set()
- s2 = set([1,2,3])
备注:第二种方式在set类中直接传入一个序列。
三、set类中方法大全
1.add函数:
def add(self, *args, **kwargs): # real signature unknown '''--向一个set集合中添加一个元素--''' """ Add an element to a set. This has no effect if the element is already present. """
add
例:
>>> s1 = set()
>>> s1.add(1)
>>> s1
{1}
2.clear函数:
def clear(self, *args, **kwargs): # real signature unknown '''--清除set集合中的所有元素--''' """ Remove all elements from this set. """ pass
clear
例:
>>> s1 = set([1,2,3])
>>> s1
{1, 2, 3}
>>> s1.clear()
>>> s1
set()
3.copy函数:
def copy(self, *args, **kwargs): # real signature unknown '''--返回一个浅拷贝的set集合--''' """ Return a shallow copy of a set. """ pass
copy
例:
pass
4.difference函数:
def difference(self, *args, **kwargs): # real signature unknown '''--比较两个set集合得到一个差集--''' """ 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
difference
例:
>>> s1 = set(['one','two','three'])
>>> s2 = s1.difference(['one','two'])
>>> s2
{'three'}
5.difference_update函数:
def difference_update(self, *args, **kwargs): # real signature unknown '''-新set集合与原来set相比较,从原来set集合中删除新set集合中存在的元素-''' """ Remove all elements of another set from this set. """ pass
difference_update
例:
>>> s1 = set(['one','two','three'])
>>> s1.difference_update(['one','three'])
>>> s1
{'two'}
6.discard函数:
def discard(self, *args, **kwargs): # real signature unknown '''-指定删除set集合中的某个元素,如果指定元素不在set集合中,则返回一个none-''' """ Remove an element from a set if it is a member. If the element is not a member, do nothing. """ pass
discard
例:
①指定元素存在set集合中:
>>> s1 = set(['one','two','three'])
>>> s1.discard('one')
>>> s1
{'three', 'two'}
②指定元素不存在集合中:
>>> s1 = set(['one','two','three'])
>>> a=s1.discard('four')
>>> print(a)
None
7.intersection函数:
def intersection(self, *args, **kwargs): # real signature unknown '''--返回两个set集合交集--''' """ Return the intersection of two sets as a new set. (i.e. all elements that are in both sets.) """ pass
intersection
例:
>>> s1 = set(['one','two','three'])
>>> s2 = set(['one','three'])
>>> s3 = s1.intersection(s2)
>>> s3
{'one', 'three'}
8.intersection_update函数:
def intersection_update(self, *args, **kwargs): # real signature unknown '''--将老set集合的值更新为新set集合与老set集合交集--'' """ Update a set with the intersection of itself and another. """ pass
intersection_update
例:
>>> s1 = set(['one','two','three'])
>>> s2 = set(['one','three'])
>>> s1.intersection_update(s2)
>>> s1
{'one', 'three'}
9.isdisjoint函数:
def isdisjoint(self, *args, **kwargs): # real signature unknown '''--如果两个set集合没有交集,返回True--''' """ Return True if two sets have a null intersection. """ pass
isdisjoint
例:
①没有交集:
>>> s1 = set(['one','two','three'])
>>> s2 = set([1,2,3])
>>> s1.isdisjoint(s2)
True
②有交集:
>>> s1 = set(['one','two','three'])
>>> s2 = set(['one'])
>>> s1.isdisjoint(s2)
False
10.issubset函数:
def issubset(self, *args, **kwargs): # real signature unknown '''--判断当前这个set集合是否是另一个set集合的子集--''' """ Report whether another set contains this set. """ pass
issubset
例:
>>> s1 = set(['one','two','three'])
>>> s2 = set(['one'])
>>> s2.issubset(s1) #是子集的情况
True
>>> s1.issubset(s2) #不是子集的情况
False
11.issuperset函数:
def issuperset(self, *args, **kwargs): # real signature unknown '''--判断当前这个set集合是否是另外一个set集合父集--''' """ Report whether this set contains another set. """ pass
issuperset
例:
>>> s1 = set(['one','two','three'])
>>> s2 = set(['one'])
>>> s1.issuperset(s2) #s1是s2的父集情况
True
>>> s2.issuperset(s1) #s2不是s1父集的情况
False
12.pop函数:
def pop(self, *args, **kwargs): # real signature unknown '''--随机删除set集合中的元素,并且返回被删除的元素--''' """ Remove and return an arbitrary set element. Raises KeyError if the set is empty. """ pass
pop
例:
>>> s1 = set(['one','two','three'])
>>> s1.pop()
'one'
>>> s1
{'three', 'two'}
13.remove函数:
def remove(self, *args, **kwargs): # real signature unknown '''--指定删除set集合中的元素--''' """ Remove an element from a set; it must be a member. If the element is not a member, raise a KeyError. """ pass
remove
例:
>>> s1 = set(['one','two','three'])
>>> s1.remove("one")
>>> s1
{'three', 'two'}
14.symmetric_difference函数:
def symmetric_difference(self, *args, **kwargs): # real signature unknown '''--两个set集合的对称集--''' """ Return the symmetric difference of two sets as a new set. (i.e. all elements that are in exactly one of the sets.) """ pass
symmetric_difference
例:
>>> s1 = set(['one','two','three'])
>>> s2 = set(['one','two','four'])
>>> s3 = s1.symmetric_difference(s2)
>>> print(s3)
{'three', 'four'}
15.symmertric_difference_update函数:
def symmetric_difference_update(self, *args, **kwargs): '''--把两个set集合的交集之外的值,更新替换当前set集合--''' """ Update a set with the symmetric difference of itself and another. """ pass
symmetric_difference_update
例:
>>> s1 = set(['one','two','three'])
>>> s2 = set(['one','two','four'])
>>> s1.symmetric_difference_update(s2)
>>> print(s1)
{'three', 'four'}
16.union函数:
def union(self, *args, **kwargs): # real signature unknown '''--sets集合的并集赋值给一个新的set集合--''' """ Return the union of sets as a new set. (i.e. all elements that are in either set.) """ pass
union
例:
>>> s1 = set(['one','two','three'])
>>> s2 = set(['one','two','four'])
>>> s3=s1.union(s2)
>>> print(s3)
{'one', 'three', 'four', 'two'}
17.update函数:
def update(self, *args, **kwargs): # real signature unknown '''--更新一个set集合,更新的set集合的值是当前集合和其他集合的并集--''' """ Update a set with the union of itself and others. """ pass
update
例:
>>> s1 = set(['one','two','three'])
>>> s2 = set(['one','two','four'])
>>> s1.update(s2)
>>> print(s1)
{'three', 'two', 'four', 'one'}
三、总结
1.函数中有带update的函数,或者本身就是update函数,是更新这个set集合本身,并不会将得到的结果重新赋值给一个变量。
2.函数一些函数不带update的函数,如:difference(取不同),intersection(取交集),symmetric_difference(取交集之外的值),union(取并集)等,将得到的结果返回给一个变量。