• 集合


    集合

    集合是一个无序的,不重复的数据组合,它的主要作用如下:

    • 去重,把一个列表变成集合,就自动去重了
    • 关系测试,测试两组数据之前的交集、差集、并集等关系

    功能

    list_1=set([1,2,3,4,5,6,7,8,9])
    list_2=set([1,3,5,6,7,9,11111])
    #交集
    print('交集',list_1.intersection(list_2))
    print('交集',list_1&list_2)
    #并集 合并起来去重复
    print('并集',list_1.union(list_2))
    print('并集',list_1|list_2)
    #差集, in list_1 but not in list_2
    print('差集',list_1.difference(list_2))
    print('差集',list_1-list_2)
    #差集 in list_2 but not in list_1
    print('差集',list_2.difference(list_1))
    print('差集',list_2-list_1)
    
    #子集
    print('子集',list_1.issubset(list_2))
    #父集
    print('父集',list_1.issuperset(list_2))
    
    #对称差集 ,去掉交集,剩下的
    print('对称差集',list_1.symmetric_difference(list_2))
    print('对称差集',list_1^list_2)
    print('===================================')
    list_3 = set([1,3,7])
    list_4 = set([2,4,6])
    print(list_3.isdisjoint(list_4  ))

    s = set([3,5,9,10])      #创建一个数值集合  
      
    t = set("Hello")         #创建一个唯一字符的集合  
    
    
    a = t | s          # t 和 s的并集  
      
    b = t & s          # t 和 s的交集  
      
    c = t – s          # 求差集(项在t中,但不在s中)  
      
    d = t ^ s          # 对称差集(项在t或s中,但不会同时出现在二者中)  
      
       
      
    基本操作:  
      
    t.add('x')            # 添加一项  
      
    s.update([10,37,42])  # 在s中添加多项  
      
       
      
    使用remove()可以删除一项:  
      
    t.remove('H')  
      
      
    len(s)  
    set 的长度  
      
    x in s  
    测试 x 是否是 s 的成员  
      
    x not in s  
    测试 x 是否不是 s 的成员  
      
    s.issubset(t)  
    s <= t  
    测试是否 s 中的每一个元素都在 t 中  
      
    s.issuperset(t)  
    s >= t  
    测试是否 t 中的每一个元素都在 s 中  
      
    s.union(t)  
    s | t  
    返回一个新的 set 包含 s 和 t 中的每一个元素  
      
    s.intersection(t)  
    s & t  
    返回一个新的 set 包含 s 和 t 中的公共元素  
      
    s.difference(t)  
    s - t  
    返回一个新的 set 包含 s 中有但是 t 中没有的元素  
      
    s.symmetric_difference(t)  
    s ^ t  
    返回一个新的 set 包含 s 和 t 中不重复的元素  
      
    s.copy()  
    返回 set “s”的一个浅复制
  • 相关阅读:
    hdu 1895 Sum Zero hash
    hdu 4277 USACO ORZ dfs+hash
    hdu 6010 Daylight Saving Time 泰勒公式
    Codeforces Round #FF (Div. 2) D. DZY Loves Modification 优先队列
    Codeforces Round #113 (Div. 2) B. Polygons Andrew求凸包
    poj 3304 Segments 线段与直线相交
    gym 101081 gym F. Auction of Services 最小生成树+倍增LCA
    hdu 1558 Segment set 线段相交+并查集
    gym 101081 E. Polish Fortress 几何
    SPOJ
  • 原文地址:https://www.cnblogs.com/PYlog/p/8609540.html
Copyright © 2020-2023  润新知