• 集合类型


    # pythoners=['王大炮','李二丫','陈独秀','艾里克斯','wxx','欧德博爱']
    # linuxers=['陈独秀','wxx','egon','张全蛋']
    #
    # l1=[]
    # for stu in pythoners:
    # if stu in linuxers:
    # # print(stu)
    # l1.append(stu)
    #
    # print(l1)
    #
    # l2=[]
    # for stu in pythoners:
    # if stu not in linuxers:
    # # print(stu)
    # l2.append(stu)
    #
    # print(l2)



    #一:基本使用
    # 1 用途: 关系运算、去重
    #
    # 2 定义方式:{}内用逗号分隔开多个元素,每一个元素都必须是不可变(即可hash)类型
    #强调:
    #2.1 集合内元素都必须是不可变(即可hash)类型
    #2.2 集合内的元素无序
    #2.3 集合内的元素不能重复

    # s={1,2,'a'} #s=set({1,2,'a'}) #集合类型。
    # print(type(s))

    # s={1.1,1,'aa',(1,2,3),{'a':1}} #会出错,因为字典是可变类型。

    # s={1,'a','hello',(1,2,3),4}
    # for item in s:
    # print(item) #无序的把值都取出来

    # s={1,1,1,1,1,1,1,1,1,'a','b','a'}
    # s={(1,2,3),(1,2,3),'a','b','a'}
    # print(s) #去重复的

    # s=set('hello')
    # print(s) #无序的取出,而且去重

    # 单纯的用集合去重,需要注意的问题是
    #1、去重的目标所包含的值必须都为不可变类型
    #2、去重的结果会打乱原来的顺序
    # names=['asb','asb','asb','wsb','wsb','egon_nb',[1,2,3]]
    # s=set(names)

    # names=list(s)
    # print(names)

    #
    # 3 常用操作+内置的方法
    #优先掌握的操作:
    #1、长度len
    # pythoners={'王大炮','李二丫','陈独秀','艾里克斯','wxx','欧德博爱'}
    # print(len(pythoners)) #元素的个数

    #2、成员运算in和not in
    # print('李二丫' in pythoners)


    pythoners={'王大炮','李二丫','陈独秀','艾里克斯','wxx','欧德博爱'}
    linuxers={'陈独秀','wxx','egon','张全蛋'}
    #3、|并集
    # print(pythoners | linuxers) #所有的人,重复的人只写一个
    # print(pythoners.union(linuxers)) #所有的人,重复的人只写一个

    #4、&交集
    # print(pythoners & linuxers) # 取重复的交集
    # print(pythoners.intersection(linuxers))
    # print(linuxers & pythoners)
    #5、-差集
    # print(pythoners - linuxers)
    # print(pythoners.difference(linuxers))
    # print(linuxers - pythoners)
    # print(linuxers.difference(pythoners))
    #6、^对称差集
    # print(pythoners ^ linuxers)
    # print(pythoners.symmetric_difference(linuxers))

    # print(linuxers ^ pythoners)
    #7、==
    # s1={1,2,3}
    # s2={1,2,3}
    # print(s1 == s2)

    #8、父集(包含关系):>,>=
    # s1={1,2,3,4,5}
    # s2={1,2,3}
    # print(s1 > s2) # s1包含s2
    # print(s1.issuperset(s2))
    # print(s2.issubset(s1))

    # s3={1,2,10}
    # print(s1 > s3)

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

    #9、子集(被包含的关系):<,<=

    s1={1,2,3,4,5}
    # s1.add(6)
    # print(s1)

    # s1.update({4,7,8,9})
    # print(s1)

    # res=s1.pop()
    # print(res)

    # res=s1.remove(4)
    # print(res)
    # print(s1)

    s1={1,2,3,4,5}
    s2={2,3,7,8}
    # s1=s1 - s2
    # print(s1)
    # s1.difference_update(s2) # s1=s1 - s2
    # print(s1)

    # s1={1,2,3,4,5}
    # s1.pop()
    # s1.remove(7)
    # s1.discard(7) # 即便要删除的元素不存在也不会报错

    # s1={1,2,3,4,5}
    # s2={5,6,7,8}
    # print(s1.isdisjoint(s2))



    #
    # #二:该类型总结
    # 1 存一个值or存多个值
    # 可以存多个值,值都必须为不可变类型
    #
    # 2 有序or无序
    # 无序
    #
    # 3 可变or不可变
    # set集合是可变类型
    # s={1,2,3}
    # print(id(s))
    # s.add(4)
    # print(s)
    # print(id(s))



    #=====================集合的去重==========================
    # 单纯的用集合去重,需要注意的问题是
    #1、去重的目标所包含的值必须都为不可变类型
    #2、去重的结果会打乱原来的顺序
    # names=['asb','asb','asb','wsb','wsb','egon_nb',[1,2,3]]
    # s=set(names)

    # names=list(s)
    # print(names)

    stu_info=[
    {'name':'egon','age':18,'sex':'male'},
    {'name':'egon','age':18,'sex':'male'},
    {'name':'egon','age':18,'sex':'male'},
    {'name':'alex','age':73,'sex':'male'},
    {'name':'oldboy','age':84,'sex':'female'},
    ]

    new_info=[]
    for info in stu_info:
    if info not in new_info:
    new_info.append(info)

    print(new_info)


  • 相关阅读:
    txtexcelcvsxml存储测试数据
    webstorm 格式化代码(CTR+ALT+L)快捷键失效?
    解决jQuery触发dbclick事件同时也执行click事件
    css经典布局——头尾固定高度中间高度自适应布局
    js 如何访问跨域的iframe的元素
    获取textarea文本框所选字符光标位置索引,以及选中的文本值;textarea高度自适应,随着内容增加高度增加;获取输入框中的光标位置
    js 如何计算当年清明节日期
    验证插件使用笔记
    node 升级之后 执行gulp报错解决方案
    scss css管理相关
  • 原文地址:https://www.cnblogs.com/fxc-520520/p/9123523.html
Copyright © 2020-2023  润新知