zoukankan      html  css  js  c++  java
  • python—004

    一、集合(set)

    1、定义:不同的元素组成,无序排列的,可哈希的值(存放不可变类型:数字、字符串、元组) 

    s={1,2,'ww',3,4,5,6,7,8,'ee'}
    print (type(s))
    print (s)
    a=set('ehdjdjjdjfnsdjbfsdjnjksbdjhb')
    print (a)
    <class 'set'>
    {1, 2, 3, 'ww', 4, 5, 6, 7, 8, 'ee'}
    {'f', 'k', 'd', 'j', 'e', 's', 'b', 'h', 'n'}

    2、集合内置方法
    (1)#add    添加
    a=set(['里','sb'])
    a.add('dddd大傻逼')
    a.add('3')
    a.add(3)
    print (a)
    {3, 'sb', '3', 'dddd大傻逼', '里'}
    #clear  清空
    print (a.clear(),'ww')
    # 返回: None
    #copy   复制
    v=a.copy()
    print (v)
    #返回:{3, 'sb', '里', '3', 'dddd大傻逼'}
    #remove 指定删除(删除不存在的,会报错)
    a.remove('3')
    print (a)
    #返回: {'里', 'dddd大傻逼', 'sb'}
    #discard 指定删除(删除不存在的,不会报错)
    a.discard('33333333')
    print (a)
    python=['ww','ee','gg','ee','ere']
    linux=['ss','dd','gg','ww']
    #集合可以去重,得到的结果是无序的
    ps=set(python)
    print (ps)
    #返回:{'gg', 'ww', 'ere', 'ee'}
    #intersection  求交集
    ps=set(python)
    ls=set(linux)
    print (ps,ls)
    print (ps.intersection(ls))
    print (ps&ls)
    #返回:{'ww', 'ere', 'gg', 'ee'} {'ww', 'ss', 'gg', 'dd'}
    # {'ww', 'gg'}
    # {'ww', 'gg'}
    # union  求并集
    ps=set(python)
    ls=set(linux)
    print (ps,ls)
    print (ps.union(ls))
    print (ps|ls)
    #返回:{'ww', 'ere', 'ee', 'gg'} {'sb', 'gg', 'ww', 'dd', 'ss'}
    # {'ere', 'sb', 'ee', 'gg', 'ww', 'dd', 'ss'}
    # {'ere', 'sb', 'ee', 'gg', 'ww', 'dd', 'ss'}
    # # union求差集
    ps=set(python)
    ls=set(linux)
    print (ps-ls)
    print (ls-ps)
    print (ps.difference(ls))
    print (ls.difference(ps))
    #:返回:{'ere', 'ee'}
    {'ss', 'dd', 'sb'}
    {'ere', 'ee'}
    {'ss', 'dd', 'sb'}
    #交叉补集
    ps=set(python)
    ls=set(linux)
    print (ps.symmetric_difference(ls))
    print (ps^ls)
    #返回:{'sb', 'dd', 'ee', 'ss', 'ere'}
    {'sb', 'dd', 'ee', 'ss', 'ere'}
    #如果两个集合没有交集,结果为none,则返回true,有交集则返回False
    s1={1,2}
    s2={3,4}
    print (s1.isdisjoint(s2))
    #返回:True
    #s1是s2的子集 结果返回true ,s1不是s2的子集 结果返回False
    s1={1,2}
    s2={1,2,3,4}
    print (s1.issubset(s2))
    print (s2.issubset(s1))
    # 返回:True
    False
    s1={1,2}
    s2={1,2,3,4}
    #s1是s2的父集 结果返回true ,s1不是s2的父集 结果返回False
    print (s1.issuperset(s2))
    print (s2.issuperset(s1))
    #返回:False
       True
    #update 更新,可以更新多个值,而add只能添加一个
    s1={1,2}
    s2={2,3,4}
    s1.update(s2)
    s1.update(('22',333),[33333])
    print (s1)
    #返回:{1, 2, 3, 4, 33333, '22', 333}
    #frozenset  不可变集合
    s3=frozenset('eeee')
    print (s3)



  • 相关阅读:
    Linux(centos)下安装JDK
    springmvc的面试知识点总结
    建造者模式
    PHP原型模式
    PHP适配器模式
    php备忘录模式
    PHP代理模式proxy
    单例模式
    工厂模式
    结构模式
  • 原文地址:https://www.cnblogs.com/zp0923/p/11025775.html
Copyright © 2011-2022 走看看