zoukankan      html  css  js  c++  java
  • 集合的操作

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

    1.去重,把一个列表变成集合,就自动去重了

    2.关系测试,测试两组数据之前的交集、差集、并集等关系

    创建集合

    >>> a = [1, 3, 5, 3]
    >>> b = set(a)
    >>> b
    {1, 3, 5}

    交集

    intersection 或 &

    >>> a = set([1, 3, 5, 7])
    >>> b = set([3, 9, 11])
    >>> a.intersection(b)
    {3}
    >>> a & b
    {3}

    并集

    union 或 |

    >>> a = set([1, 3, 5, 7])
    >>> b = set([3, 9, 11])
    >>> a.union(b)
    {1, 3, 5, 7, 9, 11}
    >>> a | b
    {1, 3, 5, 7, 9, 11}

    差集

    difference 或 -

    >>> a = set([1, 3, 5, 7])
    >>> b = set([3, 9, 11])
    >>> a.difference(b)
    {1, 5, 7}
    >>> a - b
    {1, 5, 7}

    对称差集(并集-差集)

    symmetric_difference 或 ^

    >>> a = set([1, 3, 5, 7])
    >>> b = set([3, 9, 11])
    >>> a.symmetric_difference(b)
    {1, 5, 7, 9, 11}

    是否是另一个的子集超集

    issubset issuperset

    >>> a = set([1, 3, 5, 7])
    >>> b = set([3, 9, 11])
    >>> a.issubset(b)
    False
    >>> a.issuperset(b)
    False
    >>> c = set([1, 7])
    >>> c.issubset(a)
    True
    >>> a.issuperset(c)
    True

    两者是否无交集

    isdisjoint

    >>> a = set([1, 3, 5, 7])
    >>> b = set([3, 9, 11])
    >>> a.isdisjoint(b)
    False
    >>> d = set([2, 4, 6, 8])
    >>> a.isdisjoint(d)
    True

    基本操作

    add

    >>> a = set([1, 3, 5, 7])
    >>> a.add('yes')
    >>> a
    {1, 3, 5, 'yes', 7}

    remove

    >>> a = set([1, 3, 5, 7])
    >>> a.remove(1)
    >>> a
    {3, 5, 7}

    pop 随机删除

    >>> a = set([1, 3, 5, 7])
    >>> a.pop()
    1
    >>> a
    {3, 5, 7}

    discard 删除一个指定值,如果集合中没有不做任何操作

    >>> a = set([1, 3, 5, 7])
    >>> a.discard(8)
    >>> a
    {1, 3, 5, 7}
    >>> a.discard(5)
    >>> a
    {1, 3, 7}

    update

    >>> a = set([1, 3, 5, 7])
    >>> a.update([2, 4, 6, 8])
    >>> a
    {1, 2, 3, 4, 5, 6, 7, 8}
  • 相关阅读:
    [HAOI2015]按位或
    【bzoj 4675】 点对游戏
    [WC2013]糖果公园
    [国家集训队]数颜色 / 维护队列
    【bzoj 3252】攻略
    [ZJOI2016]小星星
    hdu-1712 ACboy needs your help---分组背包
    hdu-2844&&POJ-1742 Coins---多重背包
    UVA-147 Dollars---完全背包+打表
    hdu-2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活---多重背包
  • 原文地址:https://www.cnblogs.com/allenzhang-920/p/8619680.html
Copyright © 2011-2022 走看看