• DAY02


    集合

    定义: S=set(). 注意S={}为字典类型

    求两个列表的公共部分

    1 pythons=['AAA','BBB','CCC','DDD','EEE','FFF']
    2 linuxs=['DDD','GGG','EEE']
    3 res=[]
    4 for p in pythons:
    5     if p in linuxs:
    6         res.append(p)
    7 print(res)
    >>> ['DDD','EEE']

    1 集合内可以有多个元素,但是每个元素都必须是不可变类型,即可hash类型
    2 集合内的元素唯一
    3 集合是无序的
    s={1,'a',1,1,1,1,1,1}
    #本质 s=set({1,'a',1,1,1,1,1,1})

    1 s1=set('hello')
    2 print(s1,type(s1))
    >>> {'l', 'h', 'e', 'o'} <class 'set'>

    集合优先掌握的方法

    1 pythons={'AAA','BBB','CCC','DDD','EEE','FFF'}
    2 print('AAA' not in pythons)
    >>> False
    3 print(pythons) #集合是无序的
    >>> {'EEE', 'CCC', 'BBB', 'FFF', 'DDD', 'AAA'}

    集合的关系运算

    s1={1,10,11,22}
    s2={1,11,33}

    交集

    1 print(s1 & s2)
    >>> {1,11}

    并集

    1 print(s1 | s2)
    >>> {1, 33, 10, 11, 22}

    差集

    1 print(s1 - s2)
    >>> {10,22}
    2 print(s2 - s1)
    >>> {33}

    对称差集

    1 print(s1 ^ s2)
    >>> {33,22,10}

    集合的父集与子集

    父集

    1 s1={1,2,3,5}
    2 s2={1,5}
    3 print(s1 >= s2)
    >>> True

    子集

    1 s1={1,2,3,5}
    2 s2={1,5}
    3 print(s1 <= s2)
    >>> False
    4 print(s2 <= s1)
    >>> True

    集合的内置方法

    pythons={'AAA','BBB','CCC','DDD','EEE','FFF'}
    linuxs={'DDD','GGG','EEE'}
    1. 求出即报名python又报名linux课程的学员名字集合

    1 print(pythons & linuxs)
    2 print(pythons.intersection(linuxs))
    >>> {'EEE', 'DDD'}

    2. 求出所有报名的学生名字集合

    1 print(pythons | linuxs)
    2 print(pythons.union(linuxs))
    >>> {'EEE', 'CCC', 'BBB', 'GGG', 'FFF', 'DDD', 'AAA'}

    3. 求出只报名python课程的学员名字

    1 print(pythons - linuxs)
    2 print(pythons.difference(linuxs))
    >>> {'AAA', 'CCC', 'FFF', 'BBB'}

    4. 求出没有同时这两门课程的学员名字集合

    1 print(pythons ^ linuxs)
    2 print(pythons.symmetric_difference(linuxs))
    >>> {'CCC', 'BBB', 'GGG', 'FFF', 'AAA'}

    集合的其他内置方法

    1 s={1,2,3,'a'}
    2 s.add(5)
    3 print(s) #集合是无序的
    >>>
    {1, 2, 3, 5, 'a'}
    4 print(s.pop()) #集合是无序的
    >>> 1
    5 s.remove('a') #根据元素删除 6 print(s)
    >>> {2, 3, 5}
    7 s.remove('vvvvvvvvvv') #元素不存在报错KeyError 8 s.discard('aaaaaa') #元素不存在不报错 9 print(s)
    >>> {2, 3, 5}
  • 相关阅读:
    android的几种“通知”方式简单实现(Notification&NotificationManager)
    《转》常用的正则表达式
    Http编程(二)使用Apache 的API实现
    http编程(一)使用javaAPI实现
    [随笔] 随笔、随笔
    [Java] 游戏服务器搭建 netty+spring+protobuf
    [C/C++基础--笔试突击] 概述
    [单元测试]Java单元测试,基于Mockito的第一次尝试
    [解决方法] spring-mongo mongodb 2.x 升级到 3.x 配置中出现的一些问题
    [解决方法]log4j的 highlight属性在Eclispe中显示乱码
  • 原文地址:https://www.cnblogs.com/hugengfeng/p/7338046.html
Copyright © 2020-2023  润新知