zoukankan      html  css  js  c++  java
  • day5:python学习之集合

    0. 集合的作用及特点

      集合具有去重和关系测试两大作用,它具有无序的特点。

    list1 = [1,2,3,4,5,7,6,8,6,4]
    list1 = set(list1)
    print(list1)
    >>>:{1, 2, 3, 4, 5, 6, 7, 8}

    1, 几何关系

    (1)取交集

    取交集有两种方法,一种是直接采用函数,一种使用运算符

    list2 = set([2,6,8,9,0])

    list1.intersection(list2)  或者 list1 & list2

    1 list1 = [1,2,3,4,5,7,6,8,6,4]
    2 list1 = set(list1)
    3 list2 = [2,3,4,8,9,0]
    4 list2 = set(list2)
    5 #取交集
    6 print(list1.intersection(list2))
    7 print(list1 & list2)
    View Code
    list1 = [1,2,3,4,5,7,6,8,6,4]
    list1 = set(list1)
    list2 = [2,3,4,8,9,0]
    list2 = set(list2)
    #取交集
    print(list1.intersection(list2))
    print(list1 & list2)
    >>>:{8, 2, 3, 4}
    >>>:{8, 2, 3, 4}

    (2) 取并集

    list1.union(list2)   或   list1 | list2

    #取并集
    print(list1.union(list2))
    print(list1 | list2)
    >>>:{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
    >>>:{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

    (3) 求差集

    list1.difference(list2)  #in list1 but not in list2

    #差集
    print(list1.difference(list2))#in list1 but not in list2
    print(list2.difference(list1))#in list2 but not in list1
    >>>:{1, 5, 6, 7}
    >>>:{0, 9}

    (4)子集:主要是判断list1是否为list2的子集

    list1.issubset(list2) #是,则输出True;不是,则输出False

    print(list1.issubset(list2))#判断list1是否为list2的子集
    >>>:False

    (5)父集

    list1.issuperset(list2)

    print(list1.issuperset(list2))
    >>>:False
    list3 =set([1,3,7])
    
    print(list1.issuperset(list3))
    
    >>>:True

    (6)对称差集

    list1.symmetric_difference(list2)  或 list1 ^ list2

    print(list1.symmetric_difference(list2))
    print(list1^list2)
    >>>:{0, 1, 5, 6, 7, 9}
    >>>:{0, 1, 5, 6, 7, 9}

    2. 基本操作:增删改查

    list1.add(30)  #添加一项

    list1.update([33,56,77,90]) #添加多项

    list1.remove('dd')  #删除一项,如果集合中不存在该元素,则会报错

    list.pop()  #删除任意一个元素

    list.discard('dd')  #如果集合中不存在该元素,则返回None

      

  • 相关阅读:
    C# 协变 逆变
    go slice 理解
    为什么避免使用Task.Wait或者Task.Result
    IL笔记
    docker随笔
    领域事件
    总结笔记
    基于ASP.NET Core 3.x的端点路由(Endpoint Routing)实现控制器(Controller)和操作(Action)分离的接口服务
    CentOS7 多IP搭建SOCKS5代理服务器
    Springboot 实现数据库备份还原
  • 原文地址:https://www.cnblogs.com/zyms/p/9949141.html
Copyright © 2011-2022 走看看