longxd

导航

 

集合是一个无序且不重复的集合,创建一个简单set集合:

>>> se = {'a',1,'a','!',1}     #创建一个简单的集合。
>>> se                         #集合的不重复特性体现出来了,两个字符 'a'和两个数字 1最终只显示一个。
{'a', 1, '!'}
>>> type(se)                   #查看对象的类型。
<class 'set'>
>>> dir(se)                    #查看集合内置的方法。

 

Python 集合常用方法:


add(...)方法:增加集合里面的元素。

>>> se = {'a',1,'!'}       #当前集合里面的元素
>>> se.add('d')            #添加一个元素 'd'
>>> se                        #查看添加后的结果
{'a', 1, '!', 'd'}
>>> 

clear(...)方法:清空集合里所有元素。

>>> se = {'a',1,2}    #创建一个集合。
>>> se.clear()        #测试clear()方法。
>>> se                #查看结果,已经清空集合里面的所有元素。
set()
>>> 

copy(...)方法:复制集合

>>> se = {'a','b',1,2}  
>>> test = se.copy()            #复制一个集合
>>> se
{'a', 1, 2, 'b'}
>>> test                        #查看负责后的结果
{'a', 1, 2, 'b'}
>>> se.add(3)                  #此时在集合 se 里面添加元素,不会更新到 test集合里面的。
>>> se                          #集合se的元素已经成功添加。
{1, 2, 3, 'a', 'b'}
>>> test                        #复制的集合test此时和se集合不一样
{'a', 1, 2, 'b'}
>>> 

difference(...)方法:将两个或多个集合的差集作为一个新集合返回。

>>> se
{1, 2, 3, 'a', 'b'}
>>> s
{1, 2, 'c', 'a', 'b'}
>>> s.difference(se)       #比较集合se 与 s,最后返回两个集合不同的元素。
{'c'}
>>> 

difference_update(...)方法:删除当前集合a与集合b 里共有的元素。

>>> a = {'a','b',1,2}
>>> b = {'aa','b',1,12}
>>> a.difference_update(b)  #比较集合a与b,然后对比出a与b共有的元素,最后把集合a中去除共有的元素。
>>> a            #集合a已经把公共元素 'b',1删除了。
{2, 'a'}
>>> b            #集合b是没有变化的。
{1, 'aa', 12, 'b'}

discard(...)方法:删除集合中的一个元素(如果元素不存在,则不执行任何操作)。

>>> se = {1, 2, 3, 'a', 'b'}   
>>> se.discard('a')           #删除集合里面的元素 'a'
>>> se                       #查看删除后的结果。
{1, 2, 3, 'b'}
>>> se.discard('!')          #集合中没有这个元素 '!',最终没有执行任何操作。
>>> 

intersection(...)方法:将两个集合的交集作为一个新集合返回。感觉和difference(...)方法差不多。

>>> a = {'a','b','c',1,2,3}
>>> b = {'!','b','c',1,7,8}
>>> a.intersection(b)       #返回两个集合的交集,并作为一个新字典。
{1, 'c', 'b'}
>>> 

intersection_update(...)方法:用自己和另一个的交集来更新这个集合。感觉和difference_update(...)方法差不多。

>>> a = {'a','b','c',1,2,3}
>>> b = {'a','b','c',7,8}
>>> a.intersection_update(b)    #更新集合a 和集合b的交集更新到集合a中。
>>> a                           #目前集合a里面元素就是之前a与b的交集
{'a', 'c', 'b'}
>>> b                           #集合b不受影响。
{'c', 7, 8, 'a', 'b'}
>>> a.intersection_update(b,se) #可以比较多个集合

isdisjoint(...)方法:如果两个集合有一个空交集,返回 True。如果有集合就返回False,如果没有集合就返回True.

>>> a
{'b'}
>>> b
{'c', 7, 8, 'a', 'b'}
>>> c
{'kk'}
>>> a.isdisjoint(b)    #集合a与集合b是用交集的。
False
>>> a.isdisjoint(c)     #集合a与集合c是没有交集的。
True
>>> 

issubset(...)方法:判断是否有子集,如果另一个集合包含这个集合,返回 True。

>>> a
{'b'}
>>> b
{'c', 7, 8, 'a', 'b'}
>>> a.issubset(b)      #判断a是不是b的子集,明显a是b的子集。
True
>>> b.issubset(a)      #判断b是不是a的子集,明显a是b的子集。
False
>>> 

issuperset(...)方法:判断是否是父集。

>>> a = {'a','b'}
>>> b = {'a','b','c'}
>>> a.issuperset(b)       #判断集合a是不是集合b的父集。明显不是。
False
>>> b.issuperset(a)      #判断集合b是不是集合a的父集。
True
>>> 

pop(...)方法:删除集合中的元素(如果集合为空,会引发 KeyError)。

>>> se = {1, 2, 3, 'b'}      
>>> se.pop()       #删除集合里面的一个元素
1
>>> se.pop()       #同一个集合,删除集合元素的顺序固定
2
>>> se             #查看删除后的集合元素
{3, 'b'}
>>>

>>> se          #此时集合为空
set()
>>> se.pop()     #如果集合为空,会引发 KeyError
Traceback (most recent call last):
File "<pyshell#179>", line 1, in <module>
se.pop()
KeyError: 'pop from an empty set'
>>>

remove(...)方法:移除指定集合元素(如果元素不存在,会引发 KeyError)  

>> se
{1, 2, 3, 'c', 'a', 'b'}
>>> se.remove('c')       #删除指定的元素,一次只能删除一个元素。
>>> se
{1, 2, 3, 'a', 'b'}      #查看删除结果。
>>> se.remove('HH')      #如果元素不存在,会引发 KeyError。
Traceback (most recent call last):
  File "<pyshell#191>", line 1, in <module>
    se.remove('HH')
KeyError: 'HH'
>>> 

symmetric_difference(...)方法:删除两个集合的交集,然后把每个集合剩余部分的元素组合在一起,建立一个新的集合对象。

>>> a = {'a','b',1,2}
>>> b = {'a','b',8,'!'}
>>> a.symmetric_difference(b)  #会删除两个集合的交集,把剩余部分组合在一起,形成一个新的集合。
{1, '!', 2, 8}
>>> a                          #原来的集合不会被改变。
{'a', 1, 2, 'b'}

symmetric_difference_update(...) 方法:删除两个集合的交集,把另一个集合剩余的元素,添加到当前集合中。

>>> a = {'h','k',1,2}
>>> b = {'h','b',1,'&'}
>>> a.symmetric_difference_update(b)  #去除两个集合的交集 'h'元素和 1元素,然后把集合b中剩余的元素添加到集合a中。
>>> a                                 #查看此时集合a中的元素
{2, '&', 'b', 'k'}
>>> 

union(...)方法:将两个集合的并集组合在一起,作为一个新集合返回。

>>> a = {'h','k',1,2}
>>> b = {'h','k',3,4}
>>> a.union(b)        #将两个集合的并集组合在一起,作为一个新集合返回。
{1, 2, 3, 4, 'k', 'h'}
>>>

update(...)方法:将两个集合的并集组合在一起,更新到当前这个集合(与union()方法的区别是:不会返回一个新集合)

>>> a
{1, 'h', 2, 'k'}
>>> b
{'h', 3, 4, 'k'}
>>> a.update(b)        #将两个集合的并集组合在一起,更新到集合a里面去。
>>> a                  #查看集合a里面的元素,已经发生了改变。
{1, 2, 3, 4, 'k', 'h'}  
>>> 

  

posted on 2018-04-02 15:05  longxd  阅读(122)  评论(0编辑  收藏  举报