zoukankan      html  css  js  c++  java
  • 集合及其内置方法

     

    一:基本使用:set
     1 用途: 关系运算,去重

     2 定义方式: 在{}内用逗号分开个的多个值
     集合的三大特性:
     2.1 每一个值都必须是不可变类型
     2.2 元素不能重复
     2.3 集合内元素无序

    s={1,3.1,'aa',(1,23),} # s=set({1,3.1,'aa',(1,23),})
     print(s,type(s))

    3 常用操作+内置的方法
    交集
     print(pythons & linuxs)
     print(pythons.intersection(linuxs))

    并集
    print(pythons | linuxs)
    print(pythons.union(linuxs))

     差集1
     print(pythons - linuxs)
     print(pythons.difference(linuxs))

     差集2
     print(linuxs - pythons)
     print(linuxs.difference(pythons))

    对称差集
    # print(pythons ^ linuxs)
    # print(pythons.symmetric_difference(linuxs))

    是否相等
    # s1={1,2,3}
    # s2={3,1,2}
    # print(s1 == s2)

    父集:一个集合是包含另外一个集合
    # s1={1,2,3}
    # s2={1,2}
    # print(s1 >= s2)
    # print(s1.issuperset(s2))

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

     子集
     s1={1,2,3}
     s2={1,2}
    print(s2 <= s1)
     print(s2.issubset(s1))

    # 需要掌握操作
    # s1={1,2,3}
    # s1.update({3,4,5})
    # print(s1)

    # s1={1,2,3}
    # res=s1.pop()
    # print(res)

    # s1={1,2,3}
    # res=s1.remove(3) #单纯的删除,返回值为None
    # print(s1)

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

    # s1={1,2,3}
    # s2={1,2}
    # s1.difference_update(s2) #s1=s1.difference(s2)
    # print(s1)

    # s1={1,2,3}
    # res=s1.discard(3) ##单纯的删除,返回值为None
    # print(s1)
    # print(res)
    # s1.remove(444444) #删除的元素不存在则报错
    # s1.discard(444444) #删除的元素不存在不会报错


    # s1={1,2,3}
    # s2={1,2,4}
    # print(s1.isdisjoint(s2)) #如果两个集合没有交集则返回True

    # s1={1,2,3}
    # s2={4,5,6}
    # print(s1.isdisjoint(s2)) #如果两个集合没有交集则返回True

    二:该类型总结
     1 存多个值

    2 无序

     3 set可变
     s={1,2,3}
     print(id(s))
     s.add(4)
    print(id(s))

     

    集合去重
    局限性
    1、无法保证原数据类型的顺序
    2、当某一个数据中包含的多个值全部为不可变的类型时才能用集合去重
    # names=['alex','egon','alex','alex','egon','lxx']
    # s=set(names)
    # print(s)
    # l=list(s)
    # print(l)

    stus_info=[
    {'name':'egon','age':18},
    {'name':'alex','age':73},
    {'name':'oldboy','age':84},
    {'name': 'egon', 'age': 18},
    {'name': 'egon', 'age': 18},
    {'name': 'egon', 'age': 18},
    {'name': 'oldboy', 'age': 84},

    ]
    # set(stus_info) # 报错
    l=[]
    for info in stus_info:
    if info not in l:
    l.append(info)

    # print(l)
    stus_info=l
    print(stus_info)

  • 相关阅读:
    Android系统编程入门系列之应用权限的定义与申请
    Android系统编程入门系列之应用间数据共享ContentProvider
    微服务与架构师
    一个C#开发者用Java搭建Android框架的心路历程
    学习使用Wpf开源的文本编辑器—smithhtmleditor
    聊聊 Kubernetes Pod or Namespace 卡在 Terminating 状态的场景
    写给自己看的的密码学知识
    pymongo基础操作
    1103-词牌名,合称,诗词形式
    1102-诗词类别补充与pyhanlp探索
  • 原文地址:https://www.cnblogs.com/sima-3/p/10596784.html
Copyright © 2011-2022 走看看