python set

参考:http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/0013868193482529754158abf734c00bba97c87f89a263b000


#####################################################################


set和dict类似,是一组key的集合,但不存储value,并且在set中,key值不能重复。

help(set)
python set_第1张图片


set有两个构造方法:

第一个无参数:创建一个空的set对象

第二个有一个参数:为iterable(可迭代对象),此时会将该可迭代对象转换为一个新的set对象

s=set()
s=set(range(10)) #参数为list
s=set(tuple(range(10))) #参数为tuple
s=set("12345678") #参数为字符串
python set_第2张图片

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中已存在,不能加入
python set_第3张图片

移除key值的函数有4个

discard(...)
     Remove an element from a set if it is a member
     If the element is no a member, do nothing.

discard函数可以移除一个原本属于这个set中的key,如果参数在set中不存在,则不影响


clear(...)
      Remove all elements from this set.

clear函数用于清空set


pop(...)
     Remove and return an arbitrary set element
     Raises KeyError if the set is empty

pop函数用于随机移除set中的一个key

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
python set_第4张图片

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
python set_第5张图片


2.使用函数__or__():

s1.__or__(s2)


3.使用函数union():

s1.union(s2)




#####################################################


set可以实现更多的数学简单算术操作,可以查看help(set)得到



你可能感兴趣的:(python)