zoukankan      html  css  js  c++  java
  • python之集合set

    集合是无序的,无重复元素的序列。

    创建方式:

    set(value)   #只能给一个参数value
    {  }
    set(tuple), set(list)  #将元组和列表转成集合(附带升序效果)
     1  # 下面展示两个集合间的运算.
     2 
     3 创建集合
     4 a = set('abracadabra')    
     5 b = set('alacazam')
     6 A = set(('abracadabra'))   
     7 a                                  
     8 {'a', 'r', 'b', 'c', 'd'}
     9 A
    10 {'abracadabra'}
    11 
    12 >>> a - b                              # 集合a中包含元素
    13 {'r', 'd', 'b'}
    14 
    15 >>> a | b                              # 集合a或b中包含的所有元素
    16 {'a', 'c', 'r', 'd', 'b', 'm', 'z', 'l'}
    17 
    18 >>> a & b                              # 集合a和b中都包含了的元素
    19 {'a', 'c'}
    20 
    21 >>> a ^ b                              # 不同时包含于a和b的元素
    22 {'r', 'd', 'b', 'm', 'z', 'l'}
    23 
    24 >>>a = {x for x in 'abracadabra' if x not in 'abc'}
    25 >>> a
    26 {'r', 'd'}

    添加元素:

    1 s.add( x )
    2 s.update( x )   #x可以是列表,元组,字典等
    s.update( "字符串" ) 与 s.update( {"字符串"} ) 含义不同:
     1 thisset = set(("Google", "Runoob", "Taobao"))
     2 print(thisset)
     3 {'Google', 'Runoob', 'Taobao'}
     4 
     5 
     6 #s.update( {"字符串"} )  ,将字符串添加到集合中,有重复的会忽略。
     7 thisset.update({"Facebook"})     
     8 print(thisset) 
     9 {'Google', 'Runoob', 'Taobao', 'Facebook'}
    10 
    11 
    12 #s.update( "字符串" )     将字符串拆分单个字符后,然后再一个个添加到集合中,有重复的会忽略。
    13 thisset.update("Yahoo")
    14 print(thisset)
    15 {'h', 'o', 'Facebook', 'Google', 'Y', 'Runoob', 'Taobao', 'a'}   
     

    删除元素

    1 s.remove( x )      #从集合中移除x; 如果元素不存在,会发生错误
    2 s.discard( x )     #移除集合中的元素; 且如果元素不存在,不会发生错误
    3 s.pop()            #删除排序后的集合的第一个元素,返回值为此元素。

    其他方法:

     1 s.copy()         #拷贝一个集合  
     2 x in s                         #逻辑运算符
     3 len(s)                   #元素个数
     4 s.clear()                 #清空
     5  
     6 
     7 set2.difference(set1)            #返回两集合的差集  
     8 set1.intersection(set2, set3 ... etc)      #返回两个或多个集合中都包含的元素,即交集(返回的是集合),且set1没有更新。
     9 set1.intersection_update(set2, set3)        #用set1,set2, set3的交集更新set1,无返回值
    10 set1.symmetric_difference(set2)    #返回一个新集合,去掉两集合交集后的并集。
    11 set1.symmetric_difference_update(set2)     #去掉两集合交集后的并集去更新set1。
    12  
    13 
    14 s.isdisjoint(set)                                 # 判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False
    15 set1.issubset(set2)           #set1是否为子集
    16 set1.issuperset(set)           #set1是否为父集
    17 set.union(set1, set2...)            # 返回两个或多个集合的并集,不更新原集合。
  • 相关阅读:
    购买 Linux VPS 服务器后简单的安全设置
    VPS性能测试:CPU内存,硬盘IO读写,带宽速度,UnixBench和压力测试
    Polysh实现多服务器批量执行shell
    第十一周编程总结
    第十周作业
    第九周编程总结修改
    第九周编程总结
    第八周编程总结
    第7周编程总结
    第七周编程总结啊
  • 原文地址:https://www.cnblogs.com/Henry-ZHAO/p/12725334.html
Copyright © 2011-2022 走看看