• 集合及其操作


    集合及其操作

    #_author:Administrator
    #date:2019/10/31
    #集合(重点)
    #集合的创建
    #集合是无序,不重复的,set是可变集合(可添加和删除元素,非可哈希的,不能用作字典的键,也不能作为其他集合的元素)
    s=set('Mr. starrr')
    print(s)#{'a', 'r', '.', 'M', 't', ' ', 's'}集合可以去除重复的内容
    a=['ale','eveb','ale','mx']
    print(set(a))#{'eveb', 'ale', 'mx'}
    print(type(set(a)))#<class 'set'>
    #转化为一个列表
    b=list(set(a))
    print(b)#['mx', 'ale', 'eveb']
    print(type(b))#<class 'list'>
    #Notice:集合元素必须是可哈希的,即不变类型
    # m1=[[1,2],'star',123]
    # n=set(m1)
    # print(n)#TypeError: unhashable type: 'list'
    #
    # m2=[{1:1},'star',123]
    # n2=set(m1)
    # print(n2)#TypeError: unhashable type: 'dict'
    #(2).frozenset是不可变集合
    m3=['q',1,4]
    n3=frozenset(m3)
    print(n3)#frozenset({1, 'q', 4})
    print(type(n3))#<class 'frozenset'>
    #2.访问集合(for 循环,或者用in)
    q=[1,4,'star']
    s1=set(q)
    print(4 in s1)#True
    #3.更新集合
    #(1)
    s1.add('u')#添加一个元素
    print(s1)#{1, 'star', 4, 'u'}
    s1.add('uu')
    print(s1)#{1, 'star', 4, 'uu'}
    #(2)update
    d=[1,'a','zxc','star']
    x=set(d)
    x.update('eeeo')#单个字符添加进去
    print(x)#{'e', 1, 'a', 'o', 'star', 'zxc'}
    x.update([234,'wop'])#作为一个整体添加进去
    print(x)#{'wop', 1, 'zxc', 'star', 234, 'o', 'a', 'e'}
    x.remove('zxc')
    print(x)#{1, 'star', 'wop', 234, 'a', 'e', 'o'}
    x.pop()#随机删除
    print(x)
    x.clear()
    print(x)#set()
    # del x
    # print(x)#NameError: name 'x' is not defined
    #4.集合类型操作符
    #(1)集合等价与不等价
    print(set('asd')==set('asdsdsd'))#True
    #(2)子集与超级
    print(set('asd')<set('asdhdjhwud'))#True
    #(3)联合
    print(set('asd') or set('asdhdjhwud'))#{'a', 's', 'd'}
    print(set('asd') and set('asdhdjhwud'))#{'h', 'd', 'a', 'u', 's', 'w', 'j'}
    #交集
    a=set([1,2,3,4,5])
    b=set([4,5,6,7,8])
    print(a.intersection(b))#{4, 5} print(a & b)
    #并集
    print(a.union(b))#{1, 2, 3, 4, 5, 6, 7, 8}同 a | b
    #差集
    print(a.difference(b))#{1, 2, 3} in a not but in b 同print(a-b)
    print(b.difference(a))#{8, 6, 7} 同print(b-a)
    #对称差集
    print(a.symmetric_difference(b))#{1, 2, 3, 6, 7, 8}

    #父级 超集
    print(a.issuperset(b))#False a > b
    #子集
    print(a.issubset(b))#False a< b
    #另一种实现
    a=set([1,2,3,4,5])
    b=set([4,5,6,7,8])
    print(a-b)#{1, 2, 3}
    print(b-a)#{8, 6, 7}
    print(a & b)#{4, 5}
    print(a | b)#{1, 2, 3, 4, 5, 6, 7, 8}
    print(a ^ b)#{1, 2, 3, 6, 7, 8}




  • 相关阅读:
    C# 面向对象系列笔记(三)
    C# 面向对象系列笔记(二)
    分享一下: C# 面向对象系列笔记(一) ,希望对大家有所帮助
    新人报到
    VUE+ELEMENT-UI的后台项目封装组件--查询form的封装
    vue+element-ui的后台项目封装组件--面包屑的封装
    数组对象循环格式化时间撮的转换
    VUE+ELEMENT-UI的后台项目封装组件--table的封装
    css的样式问题
    vue项目兼容es6语法跟IE浏览器
  • 原文地址:https://www.cnblogs.com/startl/p/11772946.html
Copyright © 2020-2023  润新知