• 基础【六】集合基本操作


    集合(set)的基本操作

     

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

    • 去重,把一个列表变成集合,就自动去重了
    • 集合中的元素必须是不可变类型
    • 关系测试,测试两组数据之前的交集、差集、并集等关系

    常用操作

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    = set([1,2,3,4,5])
    = set([4,5,6,7,8])
     
    print(a.intersection(b))  #交集  {4, 5}
    print(a&b)
     
    print(a.union(b))  #并集  {1, 2, 3, 4, 5, 6, 7, 8}
    print(a|b)
     
    print(a.difference(b)) #插集、得到的是a里有的b里没有的  {1, 2, 3}
    print(a-b)
     
    print(b.difference(a)) #插集、得到的是b里有的a里没有的  {8, 6, 7}
    print(b-a)
     
    print(a.symmetric_difference(b)) #方向交集、{1, 2, 3, 6, 7, 8}
    print(a^b)
    复制代码
     1 s = set([3,5,9,10])      #创建一个数值集合  
     2   
     3 t = set("Hello")         #创建一个唯一字符的集合  
     4 
     5 
     6 a = t | s          # t 和 s的并集  
     7   
     8 b = t & s          # t 和 s的交集  
     9   
    10 c = t – s          # 求差集(项在t中,但不在s中)  
    11   
    12 d = t ^ s          # 对称差集(项在t或s中,但不会同时出现在二者中)  
    13   
    14    
    15   
    16 基本操作:  
    17   
    18 t.add('x')            # 添加一项  
    19   
    20 s.update([10,37,42])  # 在s中添加多项  
    21   
    22 t.pop()   #随机删除     t.disicard() 指定删除(元素不存在会报错)
    23   
    24 使用remove()可以删除指定一项(元素不存在会报错):  
    25   
    26 t.remove('H')  
    27   
    28   
    29 len(s)  
    30 set 的长度  
    31   
    32 x in s  
    33 测试 x 是否是 s 的成员  
    34   
    35 x not in s  
    36 测试 x 是否不是 s 的成员  
    37   
    38 s.issubset(t)  
    39 s <= t  
    40 测试是否 s 中的每一个元素都在 t 中  
    41   
    42 s.issuperset(t)  
    43 s >= t  
    44 测试是否 t 中的每一个元素都在 s 中  
    45   
    46 s.union(t)  
    47 s | t  
    48 返回一个新的 set 包含 s 和 t 中的每一个元素  
    49   
    50 s.intersection(t)  
    51 s & t  
    52 返回一个新的 set 包含 s 和 t 中的公共元素  
    53   
    54 s.difference(t)  
    55 s - t  
    56 返回一个新的 set 包含 s 中有但是 t 中没有的元素  
    57   
    58 s.symmetric_difference(t)  
    59 s ^ t  
    60 返回一个新的 set 包含 s 和 t 中不重复的元素  
    61   
    62 s.copy()  
    63 返回 set “s”的一个浅复制
    复制代码
  • 相关阅读:
    Good Bye 2015 D
    Good Bye 2015 C
    good bye 2015 B
    寒假训练第九场 Brocard Point of a Triangle
    HDU 3289 Cat VS Dog (二分匹配 求 最大独立集)
    HDU 1029 Ignatius and the Princess IV DP
    找钱问题
    POJ3260——背包DP(多重)——The Fewest Coins
    Charm Bracelet
    POJ1787——背包DP(特定状态+回溯)——Charlie's Change
  • 原文地址:https://www.cnblogs.com/youxiu123/p/11158151.html
Copyright © 2020-2023  润新知