• python学习(九)集合


    集合天生去重,且无序

    1、集合格式

    s=set()
    s2=set('12344556677')
    print(s)
    print(s2)

    输出结果为:

    set()
    {'5', '3', '6', '1', '2', '7', '4'}

    2、交集

    交集就是两个集合相同的地方

    s2=set('12344556677')
    s3={'1','1','3','4','5','6','7','9'}
    print(s3&s2)
    print(s3.intersection(s2))

    两种求交集的方式都可以,输出都为:

    {'1', '6', '5', '7', '4', '3'}
    {'1', '6', '5', '7', '4', '3'}

    3、并集

    并集就是把两个集合合并到一起并去重

    s2=set('12344556677')
    s3={'1','1','3','4','5','6','7','9'}
    print(s2|s3)
    print(s2.union(s3))

    两种求并集的方式都可以,输出都为:

    {'5', '2', '3', '4', '7', '1', '6', '9'}
    {'5', '2', '3', '4', '7', '1', '6', '9'}

    4、差集

    差集指一个集合里有在另一个集合里没有,即去除一个集合里与另一个集合交集的部分

    s4 = {1, 2, 3}
    s5 = {1, 4, 6}
    print(s4 - s5)  # 只有s4里面
    print(s4.difference(s5))

    两种求差集的方式都可以,输出结果为:

    {2, 3}
    {2, 3}

    5、对称差集

    去掉俩集合里都有的

    s4 = {1, 2, 3}
    s5 = {1, 4, 6}
    print(s4 ^ s5)
    print(s4.symmetric_difference(s5))

    输出结果为:

    {2, 3, 4, 6}
    {2, 3, 4, 6}

    6、集合一些方法

    1)加元素

    s4 = {1, 2, 3}
    s5 = {1, 4, 6}
    s4.add('ss')  # 集合加元素
    print(s4)

    输出结果为:

    {1, 2, 3, 'ss'}

    2)随机删除

    s4 = {7, 2, 3}
    s4.pop()  # 随机删除
    print(s4)

    输出结果为:

    {3, 7}

    3)指定删除

    s4 = {7, 2, 3,'ss','test'}
    s4.remove('ss') #指定删除哪一个
    print(s4)

    输出结果为:

    {2, 3, 7, 'test'}

    4)把另一个集合加入

    s4 = {7, 4, 3,'ss','test'}
    s4.update({1,2,3}) #把另一个集合加进去
    print(s4)

    输出结果为:

    {1, 2, 3, 4, 7, 'test', 'ss'}   #集合会自动去重

    7、练习

    检验密码里是否包含数字,大写字母,小写字母和特殊字符

    import string
    digits = set(string.digits)
    upper = set(string.ascii_uppercase)
    lower = set(string.ascii_lowercase)
    pun = set(string.punctuation)
    for i in range(5):
        pwd =input('请输入密码:').strip()
        pwd_set =set(pwd)
        if pwd_set & digits and pwd_set&upper and pwd_set&lower and pwd_set&pun:
            print('密码合法',pwd)
        else:
            print('密码必须包含数字,大写字母,小写字母和特殊字符')

     8、isdisjoint()用法

    没有交集返回true,有交集返回false
    s1={1,2,7}
    s2={3,4,5}
    print(s1.isdisjoint(s2))

    两个集合没有交集,输出为:true



  • 相关阅读:
    eth0 no such device(reload)
    wince驱动开发入门
    如何在Linux中添加新的系统调用
    嵌入式Linux启动优化手记2 U…
    关于uboot的一些优化
    Yaffs2根文件系统制作
    kernel下制作动态logo
    linux dev/dsp 声卡学习笔记
    【JDK8】Java8 优雅的异步调用API CompletableFuture
    每周总结:2019年12月第5周
  • 原文地址:https://www.cnblogs.com/emilyliu/p/8745205.html
Copyright © 2020-2023  润新知