参考:http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/0013868193482529754158abf734c00bba97c87f89a263b000
#####################################################################
set和dict类似,是一组key的集合,但不存储value,并且在set中,key值不能重复。
help(set)
set有两个构造方法:
第一个无参数:创建一个空的set对象
第二个有一个参数:为iterable(可迭代对象),此时会将该可迭代对象转换为一个新的set对象
s=set() s=set(range(10)) #参数为list s=set(tuple(range(10))) #参数为tuple s=set("12345678") #参数为字符串
add(...) Add an element to a set This has no effect if the element is already present.set可以通过add函数增加key
不过由于set不能包含重复key,所以添加为set中已有key,则任何变化
s=set(range(10)) s.add(20) #可以加入 s.add(2) #s中已存在,不能加入
移除key值的函数有4个
discard(...) Remove an element from a set if it is a member If the element is no a member, do nothing.
clear(...) Remove all elements from this set.
pop(...) Remove and return an arbitrary set element Raises KeyError if the set is empty
pop函数无参数
remove(...) Remove an element from a set; it must be a member. If the element is not a member, raise a KeyError.remove函数有一个参数,此参数为set中的一个key,函数功能为在set中移除参数指定的key
如果参数在set中不存在,则会报出一个KeyError
set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集 / 并集等操作:
交集操作:
1.可以直接使用符号'&':
s1=set(range(5)) s2=set(range(3,8)) s1 & s2
2.可以使用__and__函数:
__and__(...) x.__and__(y) <==> x&y
3.使用函数intersection():
intersection(...) Return the intersection of two or more sets as a new set. (i.e. elements that are common to all of the set)
使用本函数可以直接进行多个set的交集操作
并集操作:
1.使用符号'|':
s1=set(range(5)) s2=set(range(3,8)) s1 | s2
2.使用函数__or__():
s1.__or__(s2)
3.使用函数union():
s1.union(s2)
#####################################################
set可以实现更多的数学简单算术操作,可以查看help(set)得到