zoukankan      html  css  js  c++  java
  • set()集合的概念与一般操作

    1.概念

    set集合是python的一种基本数据类型,其特点为:

    1.元素不重复(可以利用这条性质除去重复元素)

    2.在集合中无序

    3.元素可hash(int,str,bool,tuple)

    set集合的表示方法为:

    set ={}

    2.一般操作

    1.增加

    set.add() #把被添加数据添加到集合的开头

    set.update() #把元素迭代无序添加到集合中

    2.删除

    pop()

    remove()

    clear()

    del set

    这里注意pop()不能指定变量否则会报错

    3.修改

    由于set集合中的元素没有索引,因此没法定位set中的元素,因此set集合中的修改只能先删除 再添加

    4.查询

    set是一个可迭代对象,可以使用for循环查询

    for el in s:

    print(el)

    5.其他操作

    s1 = {"刘能", "赵四", "皮长山"}

    s2 = {"刘科长", "冯乡长", "皮长山"}

    1.交集 s1 & s2

    print(s1 & s2) # {"皮长山"}

    或者

    print(s1.intersection(s2)) # {"皮长山"}

    2.并集 s1 | s2 (无序)

    print(s1 | s2) # {"刘能", "赵四", "皮长山","刘科长", "冯乡长"}

    或者

    print(s1.union(s2)) # {"刘能", "赵四", "皮长山","刘科长", "冯乡长"}

    3.差集 s1 - s2

    #将被差集合中存在于差集合的元素删除,即s1删除s1与s2的交集

    print(s1 - s2) # {'赵四', '刘能'}

    或者

    print(s1.difference(s2)) # {'赵四', '刘能'}

    4.反交集 s1 ^ s2

    # 删除两个集合的交集然后s1与s2并集

    print(s1 ^ s2) # {'冯乡长', '刘能', '刘科长', '赵四'}

    或者

    print(s1.symmetric_difference(s2)) # {'冯乡长', '刘能', '刘科长', '赵四'}

    5.子集 s1 < s2

    #判断集合s1是否是集合s2的子集

    s1 = {"刘能", "赵四"}

    s2 = {"刘能", "赵四", "皮长山"}

    print(s1 < s2) # True

    或者

    print(s1.issubset(s2)) # True

    6.超集 s1 > s2

    #判断s1是否是s2的超集(是否包含s2)

    print(s1 > s2) #False

    或者

    print(s1.issuperset(s2)) #False

    7.使set集合变成一个可hash的

    s = frozenset(["赵本山", "刘能", "皮长山", "长跪"])

    dic = {s:'123'} # 可以正常使用了

    print(dic) #{ frozenset(["赵本山", "刘能", "皮长山", "长跪"]) : '123'}

  • 相关阅读:
    D
    洛谷P2002 消息扩散
    洛谷P5058 [ZJOI2004]嗅探器
    洛谷P2746 校园网Network of Schools
    洛谷P3388 【模板】割点(割顶)
    洛谷P1407 [国家集训队]稳定婚姻
    2018年12月18日
    洛谷P1547 Out of Hay
    洛谷P4018 Roy&October之取石子
    洛谷P1318 积水面积
  • 原文地址:https://www.cnblogs.com/zy740/p/11005662.html
Copyright © 2011-2022 走看看