zoukankan      html  css  js  c++  java
  • Python 集合

    集合是一个无序且不重复的集合,创建一个简单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'}  
    >>> 
    

      

  • 相关阅读:
    大航海计划
    副业刚需
    【转】iOS学习之适配iOS10
    【原】iOS学习之Masonry第三方约束
    【原】iOS学习之PINCache第三方缓存框架
    【原】iOS学习之苹果原生代码实现Autolayout和VFL语言
    【原】iOS学习之NSDate在项目中的一些类目扩展
    【原】iOS学习之tableView的常见BUG
    【转】iOS开发 -- Apple Pay
    【原】iOS学习之事件处理的原理
  • 原文地址:https://www.cnblogs.com/longxd/p/8693513.html
Copyright © 2011-2022 走看看