zoukankan      html  css  js  c++  java
  • Python 集合的交差并补操作及方法

    1.集合的交差并补

    intersection() 交集

    set1 ={'卢俊义','花荣', '吴用'}
    set2 ={'公孙胜','秦明','卢俊义'}
    res = set1.intersection(set2)
    print(res) #{'卢俊义'}
    
    #简写
    res = set1 & set2
    print(res)
    

    difference() 差集

    set1 ={'卢俊义','花荣', '吴用'}
    set2 ={'公孙胜','秦明','卢俊义'}
    res = set1.difference(set2)
    print(res)
    # 简写
    res = set1 - set2
    print(res)
    

    union() 并集

    set1 ={'卢俊义','花荣', '吴用'}
    set2 ={'公孙胜','秦明','卢俊义'}
    res = set1.union(set2)
    print(res)
    # 简写
    res = set1 | set2
    print(res)
    

    symmetric_difference() 对称差集 (补集情况涵盖在其中)

    按位异或 , 两者不相同方为真,一个是1,一个是0 ,结果是True,两者一样是False
    
    set1 ={'卢俊义','花荣', '吴用'}
    set2 ={'公孙胜','秦明','卢俊义'}
    res = set1.symmetric_difference(set2)
    print(res)
    # 简写
    res = set1 ^ set2
    print(res)
    

    issubset() 判断是否是子集

    set1 ={'卢俊义','花荣', '吴用'}
    set2 ={'公孙胜','秦明','卢俊义'}
    res = set1.issubset(set2)
    print(res)
    # 简写
    res = set1 <= set2
    print(res)
    

    issuperset() 判断是否是父集

    set1 ={'卢俊义','花荣', '吴用'}
    set2 ={'公孙胜','秦明','卢俊义'}
    res = set2.issuperset(set1)
    print(res)
    
    # 简写
    res = set2 >= set1
    print(res)
    

    isdisjoint() 检测两集合是否不相交 不相交 True 相交False

    set1 ={'卢俊义','花荣', '吴用'}
    set2 ={'公孙胜','秦明','卢俊义'}
    res = set1.isdisjoint(set2)
    print(res)# False 代表相交;
    

    2.集合的相关函数

    set1 ={'卢俊义','花荣', '吴用'}
    set1.add("宋江")
    print(set1)#{'卢俊义', '吴用', '花荣', '宋江'}
    
    #update() 迭代着增加
    setvar.update("abc")
    print(setvar)
    

    clear() 清空集合

    set1 ={'卢俊义','花荣', '吴用'}
    set1.clear()
    print(set1) #set()
    

    pop() 随机删除集合中的一个数据

    set1 ={'卢俊义','花荣', '吴用'}
    res = set1.pop()
    print(res) #卢俊义
    print(set1) #{'花荣', '吴用'}
    

    remove() 删除集合中指定的值(不存在则报错)

    set1 ={'卢俊义','花荣', '吴用'}
    res = set1.remove("吴用")
    print(res)#None
    print(set1)#{'花荣', '卢俊义'}
    

    discard() 删除集合中指定的值(不存在的不删除 推荐使用)

    set1 ={'卢俊义','花荣', '吴用'}
    set1.discard("小小") #不存在不会报错
    set1.discard("花荣")
    print(set1)
    

    3.冰冻集合

    frozenset 可强转容器类型数据变为冰冻集合
    冰冻集合一旦创建,不能在进行任何修改,只能做交叉并补操作
    
    # 空的冰冻集合
    fz = frozenset()
    print(fz,type(fz))
    
    lst = ["a",'c','b']
    fz = frozenset(lst)
    print(fz,type(fz))
    
    #冰冻集合可遍历
    for i in fz:
    	print(i)
    
    #冰冻集合只做交差并补
    fz1 = frozenset(["a",'c','b'])
    fz2 = frozenset(('c','b','d'))
    print(fz1 & fz2)
    print(fz1 - fz2)
    
    # fz1.add("cccc") error 不能添加或者删除,只做交差并补;
    
  • 相关阅读:
    设计模式(二):命令模式实例
    设计模式(一):简单工厂实例
    vue中使用base64进行加解密
    vue跨域问题解决(生产环境)
    彩色图像的直方图绘制及灰度图像均衡化
    MySql中添加用户,新建数据库,用户授权,删除用户,修改密码
    python办公入门2:开发准备工作
    python办公入门1:概述
    python菜鸟教程学习9:函数
    python菜鸟教程学习8:迭代器与生成器
  • 原文地址:https://www.cnblogs.com/CrownYP/p/11360670.html
Copyright © 2011-2022 走看看