• 集合



    pythons=['六三','print','abc','zx','zs','lg','']
    linuxs=['oldboy','张三','李四','王五','lg','zx']
    l=[]#定义空列表 将报名两个相同课程的人筛选出来

    for stu in pythons:
    if stu in linuxs
    l.append(stu)
    print(l)#找到两个相同的部分

    1.什么是集合
    在{}内用逗号分隔开多个值,集合的特点
    1.每个值必须是不可变类型
    2.集合无序
    3.集合内元素不能重复

    2.为什么要集合
    1.用于做关系运算
    2.去重 性质非常多 应用非常窄

    3.怎么用集合

    s={1,1.3,'aa',[1,2,3]}#集合内不能放列表 因为集合内不能放可变类型 所以不能放列表【】
    s={1,1.3,'aa'}
    print(s)

    s={1,1,1,1,1,1,1,2}
    print(s)#只能输出1和2两个数字

    d={'x':1,'x':2,'x':3}
    print(d)#字典中不可重复定义 重复定义输出最后的值

    res=set('hello')
    print(res) 集合去重 输出结果为 {'o', 'l', 'h', 'e'}

    res=set([1,2,])
    print(res)#1 2
    res=set([1,2,['a','b']])#不能把列表加到集合中去 因为集合内不能放可变类型
    print(res)

    集合的第一大用途:关系运算
    pythons={'六三','print','abc','zx','zs','lg',''}
    linuxs={'oldboy','张三','李四','王五','lg','zx'}

    1.求同时报名两门课程的学生姓名:交集
    print(pythons&linuxs)
    print(pythons.intersection(linuxs))

    pythons=pythons.intersection(linuxs)
    pythons.intersection_update(linuxs)
    print(pythons)

    2.求报名两门课程所有同学的姓名:并集
    print(pythons|linuxs)#同时存在就进行去重
    print(pythons.union(linuxs))

    3.求只报名python课程的学生:差集
    print(pythons-linuxs)
    print(pythons.difference(linuxs))

    只报名Linux课程的学生
    print(linuxs-pythons)
    print(linuxs.difference(pythons))

    4.求没有同时报名两门课程的学生姓名:对称差集
    print((pythons-linuxs)|(linuxs-pythons))
    print(pythons^linuxs)
    print(pythons.symmetric_difference(linuxs))


    5.父子集
    s1={1,2,3}
    s2={1,2}
    print(s1 > s2) >代表s1是包含s2的 称之为s1为的父集返回true
    print(s2 < s1)
    print(s1 >= s2)
    print(s1.issuperset(s2))
    print(s2.issuperset(s1))

    s1={1,2,3}
    s1.update({3,4,5})
    print(s1)

    s1.pop()#随机删一个值
    s1.remove(2) 删除2 如果元素不存在会报错
    print(id(s1))
    s1.add(4)
    print(s1)
    print(id(s1))
    id没变值变了集合是可变类型
    s1.discard(3)删除3 如果元素不存在 就不做任何事
    s1={1,2,3}
    s2={4,5}
    print(s1.isdisjoint(s2)) s1和s2有交集返回false s1和s2没有交集返回true

    s3={1,2,3}
    s4={3,2,1}
    print(s3==s4)

    s5={1,2,3}
    s6={1,2,3}
    print(s5 >= s6)
    print(s5 <= s6)
    互为父子集

    #集合的第二大用途:去重
    集合去重的局限性
    1.会打乱原值的顺序
    2.只针对不可变去重

    stus=['egon','lgl','lx','alex','alex','zx']
    res=set(stus)
    print(res)
    list(res)
    print(res)
    old_l=[1,[1,2],[1,2]]
    res=set(old_l)#不可去重
    print(res)

    l=[
    {'name':'egon','age':18,'sex':'male'},
    {'name':'alex','age':73,'sex':'male'},
    {'name':'egon','age':20,'sex':'female'},
    {'name':'egon','age':18,'sex':'male'},
    {'name':'egon','age':18,'sex':'male'},
    ]

    new_l=[]
    for dic in l:
    if dic not in new_l:
    new_l.append(dic)
    print(new_l)
    #======================================该类型总结===
    存多个值

    无序

    可变
    按存值个数区分

    标量/原子类型 数字,字符串
    容器类型 列表,元组,字典

    按可变不可变区分

    可变 列表,字典
    不可变 数字,字符串,元组

    按访问顺序区分

    直接访问 数字
    顺序访问(序列类型) 字符串,列表,元组
    key值访问(映射类型) 字典

  • 相关阅读:
    leetcode 136 只出现一次的数字
    echo命令 显示内容
    cat 命令 查看文件内容
    more命令 分屏查看文件
    tree 命令 以树形显示目录
    leetcode 16 最接近三数之和 双指针问题
    破解NFC卡
    小米手机root
    软件设计文档
    下属做事拖拉怎么办
  • 原文地址:https://www.cnblogs.com/liugangjiayou/p/11602933.html
Copyright © 2020-2023  润新知