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

    set集合的特性

    1.元素必须是可hash的(不可变的)数据类型包括:str、int、 float、tuple

    2.无序且不可重复的

    3.set(这里面必须是可迭代的对象:str、list、dict的key、tuple)


    创建集合方法

    可变集合(unhash):set()

    不可变集合(hash):forzenset()


    访问集合

    集合是无序的,无法使用索引,只能通过历遍和迭代器来取值,in、not in 来判断元素是否在集合中。


    集合的方法

    add 添加

    a = ['alex',3,4]

    s = set(a)

    print(s)

    s.add('xiaoma')

    print(s)

    output:

    {'alex', 3, 4}

    {'xiaoma', 'alex', 3, 4}

    update 更新,会将一个序列的内容全都加到集合中去,重复的会去重a = ['alex',3,4]

    s = set(a)
    print(s)
    s.update({'name':'xia','age':'90'})
    print(s)
    output:

    {3, 4, 'alex'}
    {3, 4, 'alex', 'age', 'name'}

    ------------------------------------------------

    a = ['alex',3,4]
    s = set(a)
    print(s)
    s.update('ops')
    print(s)
    output:

    {3, 4, 'alex'}
    {3, 4, 'p', 's', 'alex', 'o'}

    ----------------------------------------------------

    a = ['alex',3,4]
    s = set(a)
    print(s)
    s.update([1,2])
    print(s)
    output:

    {3, 4, 'alex'}
    {1, 2, 3, 4, 'alex'}

    删除 remove()  pop() clear()  del

    a = ['alex',3,4]
    s = set(a)
    print(s)
    s.remove('alex')
    print(s)

    output:

    {'alex', 3, 4}
    {3, 4}

    ------------------------------------------------------

    a = ['alex',3,4]
    s = set(a)
    print(s)
    s.pop()    #随意删除的形式,有返回值
    print(s)

    output:

    {3, 4, 'alex'}
    {4, 'alex'}

    ---------------------------------------------------------

     s.clear()    #清空集合,和删除还是不太一样的

    a = ['alex',3,4]
    s = set(a)
    print(s)
    s.clear()
    print(s)

    output:

    {3, 'alex', 4}
    set()

    -----------------------------------------------------------------

    a = ['alex',3,4]
    s = set(a)
    print(s)
    del s             #将s删除
    print(s)         #报错


    集合的重点用法 (*****)

    • 去重
    • 测试方式

    a = set([1,2,3,4,5])
    b = set([4,5,6,7,8])

    print( a != b)    #等价判断两个集合是否相等 ,返回一个bool 。==   != 

    print(a & b )     #交集 {4, 5}

    print(a | b)       #并集 {1, 2, 3, 4, 5, 6, 7, 8}

    print(a - b)       #差积 {1, 2, 3}    in  a   but not in b

    print(b - a)       #差积 {6,7,8}      in  b   but not a 

    print( b ^ a )     #对称 {1, 2, 3, 6, 7, 8}

    print(a < b )      #子集 a 是否是b的子集

    print(a > b )      #超集 a 是否是b的父集

  • 相关阅读:
    剑指Offer-30.连续子数组的最大和(C++/Java)
    剑指Offer-29.最小的K个数(C++/Java)
    UVA 1616 Caravan Robbers 商队抢劫者(二分)
    UVA 10570 Meeting with Aliens 外星人聚会
    UVA 11093 Just Finish it up 环形跑道 (贪心)
    UVA 12673 Erratic Expansion 奇怪的气球膨胀 (递推)
    UVA 10954 Add All 全部相加 (Huffman编码)
    UVA 714 Copying Books 抄书 (二分)
    UVALive 3523 Knights of the Round Table 圆桌骑士 (无向图点双连通分量)
    codeforecs Gym 100286B Blind Walk
  • 原文地址:https://www.cnblogs.com/linux-error/p/9243351.html
Copyright © 2011-2022 走看看