zoukankan      html  css  js  c++  java
  • Python集合操作

    #集合(确定的无序的一组数据)
    #基本操作
    #创建集合
    #空集合
    var = set()
    print(var,type(var))
    
    #具有数据的集合
    var = {'zhangwang','zhangbo','zhanglang'}
    print(var,type(var))
    
    #成员检测
    result = 'zhangbo' in var
    print(result)
    
    result = 'zhangsan' not in var
    print(result)
    
    #集合推导式
    var = {'蚂蚱','螳螂','蝈蝈','蛐蛐'}
    
    #基本的集合推导式
    result = {'*'+i+'*' for i in var}
    print(result)
    
    #带有判断条件的集合推导式
    result = {i for i in var if i != '蛐蛐'}
    print(result)
    
    #多循环集合推导式
    colors = {'red','blue','pink'}
    sizes = {36,37,38,39}
    result = {c + str(s) for c in colors for s in sizes}
    print(result)
    
    #集合函数
    '''
    #add()  向集合中添加元素
    girls = {'mf','sl','yj'}
    girls.add('xf')
    print(girls)
    
    #pop()  随机删除集合中的一个元素
    boys = {'bd','zw','jl','zy'}
    result = boys.pop()
    print(boys)
    print(result)
    
    #remove()  删除集合中指定的元素  删除不存在的元素会报错
    boys = {'bd','zw','jl','zy'}
    boys.remove('zy')
    print(boys)
    
    #discard()  删除集合中指定的元素  删除不存在的元素啥都不做
    boys = {'bd','zw','jl','zy'}
    boys.discard('zy1')
    print(boys)
    
    #clear()  清空集合
    boys = {'bd','zw','jl','zy'}
    boys.clear()
    print(boys)
    
    #copy()  复制集合
    boys = {'bd','zw','jl','zy'}
    newboys = boys.copy()
    print(newboys)
    '''
    
    #difference() 计算2个集合的差集
    dreamers = {'ljl','wc','xy','zb','lsy'}
    girls = {'mmf','lsy','syj'}
    result = dreamers.difference(girls)# result = a + b
    print(result)
    
    #difference_update()  计算2个集合的差集(差集更新操作)
    dreamers = {'ljl','wc','xy','zb','lsy'}
    girls = {'mmf','lsy','syj'}
    dreamers.difference_update(girls)#a = a + b  a += b
    print(dreamers)
    
    #union()  并集操作
    dreamers = {'ljl','wc','xy','zb','lsy'}
    girls = {'mmf','lsy','syj'}
    result = dreamers.union(girls)
    print(result)
    
    #update()  并集更新操作
    dreamers = {'ljl','wc','xy','zb','lsy'}
    girls = {'mmf','lsy','syj'}
    dreamers.update(girls)
    print(dreamers)
    
    #intersection()  计算2个集合的交集
    dreamers = {'ljl','wc','xy','zb','lsy'}
    girls = {'mmf','lsy','syj'}
    result = dreamers.intersection(girls)
    print(result)
    
    #intersection_update  交集更新操作
    dreamers = {'ljl','wc','xy','zb','lsy'}
    girls = {'mmf','lsy','syj'}
    dreamers.intersection_update(girls)
    print(dreamers)
    
    #超集和子集
    boys = {'zzy','yqw','dw','wzc','lyb','wym','chy'}
    zoudu = {'wzc','lyb','wym'}
    girls = {'lsy','mmf','syj'}
    
    #issuperset()  检测当前集合是否是另一个集合的超集
    result = boys.issuperset(zoudu)
    print(result)
    
    #issubset()  检测当前集合是否是另一个集合的子集
    result = zoudu.issubset(boys)
    print(result)
    
    #isdisjoint()  检测2个集合是否不存在交集  存在交集 False
    result = boys.isdisjoint(girls)
    print(result)
    
    #symmetric_difference()  对称差集
    dreamers = {'ljl','wc','xy','zb','lsy'}
    girls = {'mmf','lsy','syj'}
    result = dreamers.symmetric_difference(girls)
    print(result)
    
    #symmetric_difference_update()  对称更新差集
    dreamers = {'ljl','wc','xy','zb','lsy'}
    girls = {'mmf','lsy','syj'}
    dreamers.symmetric_difference_update(girls)
    print(dreamers)
    
    #冰冻集合
    #冰冻集合是一种特殊的集合类型,也是集合(集合是列表的话,冰冻集合就是元组)
    #创建冰冻集合
    #一般不会创建空的冰冻集合
    var = frozenset()
    print(var,type(var))
    
    #带有数据的冰冻集合
    var = frozenset(('qs','szx','bjh','acs'))
    print(var,type(var))
    
    #成员检测
    result = 'szx' in var
    print(result)
    
    #遍历冰冻集合
    for i in var:
        print(i)
    
    #集合推导式(无法得到冰冻集合,可以得到集合,列表,元组,字典类型)
    result = {i for i in var}
    print(result,type(result))
    
    #函数
    #冰冻集合可以使用集合的函数(不修改集合本身的函数都可以使用)
    var = frozenset(('qs','szx','bjh','acs'))
    
    #copy()
    result = var.copy()
    print(result)
    
    #集合操作  交集,并集,差集,对称差集等  不修改冰冻集合本身就能使用:冰冻集合的操作结果都是冰冻集合
    var1 = frozenset(('qs','szx','bjh','acs'))
    var2 = {'szx','bjh','lc','wb'}
    
    #冰冻集合操作
    result = var1.union(var2)
    print(result)
    
    #普通集合操作(冰冻集合是参考集合)
    result = var2.union(var1)
    print(result)
  • 相关阅读:
    MT【38】与砝码有关的两个题
    MT【37】二次函数与整系数有关的题
    MT【36】反函数有关的一道题
    MT【35】用复数得到的两组恒等式
    MT【34】正余弦的正整数幂次快速表示成正余弦的线性组合
    MT【33】证明琴生不等式
    MT【32】内外圆(Apollonius Circle)的几何证明
    MT【31】傅里叶级数为背景的三角求和
    MT【30】椭圆的第二定义解题
    MT【29】介绍向量的外积及应用举例
  • 原文地址:https://www.cnblogs.com/sunyang945/p/7859962.html
Copyright © 2011-2022 走看看