• python--002--数据类型(set)


    集合:set

      特点:

      1)不同元素组成
      2)无序
      3)集合中元素必须是不可变类型

    s={1,2,4,5,8}
    print(type(s))
    output:<class 'set'>
    
    s=set('hello')
    print(s)
    output:{'h', 'l', 'e', 'o'}
    
    s=set(["abc","abc","sb"])
    print(s)
    output:{'sb', 'abc'}

     

    集合set的方法:

    ss=s.copy()
    print(ss)
    
    s.clear()
    s.add(3)
    s.pop()
    s.remove("sb")
    s.remove("dhdhdkddkkd") # 删除元素不存在会报错
    s.discard("sbbbbb") # 删除元素不存在不会报错

     


    集合关系运算交、差、并集

     

    python_1=['lcg','szw','zjw']
    linux_1=['lcg','szw',"sb"]
    
    
    p_s=set(python_1)
    l_s=set(linux_1)
    print(p_s,l_s)
    
    #求交集
    print(p_s.intersection(l_s))
    print(p_s&l_s)
    
    #求并集
    print(p_s.union(l_s))
    print(p_s|l_s)
    
    #求差集
    print(p_s.difference(l_s))
    print("差集:",p_s-l_s)
    print(l_s.difference(p_s))
    print("差集:",l_s-p_s)
    #交叉补集
    
    print('交叉补集',p_s.symmetric_difference(l_s))
    print('交叉补集',p_s^l_s)
    
    #difference_update求出差集后,并更新p_s
    p_s.difference_update(l_s)
    print(p_s)

     

    其他方法:

     

    #isdisjoint如果两个集合交集结果为空,则返回True
    s1={1,2}
    s2={3,5}
    print(s1.isdisjoint(s2))
    
    #issubset相当于s1<=s2即s1是s2的子集,issuperset相当于s1>=s2即s1是s2的父集
    s1={1,2}
    s2={1,2,3}
    print(s1.issubset(s2))#s1是s2的子集
    print(s2.issubset(s1))#返回False
    
    print(s2.issuperset(s1))#s1是s2的父集
    
    #update相当于将s2的值更新给s1
    s1.update(s2)#更新多个值,可传入字典、列表
    print(s1)
    
    s1.add(5)#更新一个值
    s1.union(s2)#不更新

     

    frozenset定义为了不可变类型,没有add等方法


    s=frozenset('hello')
    # s没有add等方法

    #实现简单去重

    names=['wendy','wendy','xiaozhu']
    s=set(names)
    print(s)
    #将names变为之前的list,不过顺序变了
    names=list(s)
    print(names)
    
    #上述几句变为一句,简单去重,顺序会变
    names=list(set(names))

     



  • 相关阅读:
    2018年国内就业薪资高的7大编程语言排行
    前端css实现最基本的时间轴
    前端css实现最基本的时间轴
    用Canvas画一个刮刮乐
    用Canvas画一个刮刮乐
    「干货」从菜鸟到大神,前端学习书籍推荐
    洛谷P3379 【模板】最近公共祖先(LCA)
    洛谷 P1359 租用游艇
    位运算...
    洛谷P2782 友好城市
  • 原文地址:https://www.cnblogs.com/jinf/p/10507445.html
Copyright © 2020-2023  润新知