zoukankan      html  css  js  c++  java
  • Python-集合

    #各数据结构访问顺序:

    1. 直接访问:数字
    2. 顺序访问:字符串、列表、元组(可通过下标访问)
    3. 映射:字典

    集合(set):

      定义方式:

        s = {1,2,3,’s’}

        s = set(‘hello’)    #可变类型集合,原集合可增删,不可修改

        s = frozenset(‘hello’)  #不可变集合,不可增删改

      特征:

      1. 不同元素组成
      2. 无序
      3. 内部元素均为不可变类型(字符串、数字、元组)

    #删除的三种方法:

    v = s.pop()     #随机删除某一元素,并赋值给v
    s.remove('h')   #删除指定元素,若不存在则报错
    s.discard('s')  #删除指定元素,若不存在不报错

    #集合的关系运算(交、并、差、交叉补集):

    print(p.intersection(l))    #交集
    print(p & l)
    print(p.union(l))           #并集
    print(p | l)
    print(p.difference(l))      #差集(存在于前面但不存在于后面的元素)
    print(p - l)
    print(p.symmetric_difference(l))  #交叉补集(并集-交集)
    print(p^l)

    #添加新元素:

    s1.add(3)      #只能更新一个值
    s1.update()    #求s1和s2的并集,并将结果赋值回s1(union只计算并集,不赋值给原集合)
    s1.update([1,'s',(1,2)])  #同时添加多个元素时要用[]括起来(即列表形式)

    #其它常见方法:

    s1.isdisjoint(s2)   #交集是否为空,为空返回True
    s1.issubset(s2)     #s1是否是s2的子集
    s2.issuperset(s1)   #s2是否是s1的父集
  • 相关阅读:
    [React]核心概念
    [算法]复杂度分析
    [算法]移除指定元素&strSr()的实现
    [算法]合并链表&删除数组重复项
    php _weakup()反序列化漏洞
    Java 注解详解
    MyBatis入门
    Spring 事务管理
    Spring AOP
    Spring JDBC
  • 原文地址:https://www.cnblogs.com/yu-long/p/9941174.html
Copyright © 2011-2022 走看看