zoukankan      html  css  js  c++  java
  • 07-02集合

    集合set

    集合是数学意义上的集合

    特征:没有重复元素

    集合对象操作

    定义集合

    方法1:s = set()
    方法2:s = {1, 2, 3}
    方法3:s = set(range(3)) # 初始化一个可迭代对象

    删除集合

    需要使用del方法删除
    截至2020年5月23日,本人暂时还未发现其他的方法

    集合元素的操作

    增加

    • s.add(value)方法
    • s.update(可迭代对象)附加一个可迭代对象
    • 增加元素都是原地修改返回None
    • 集合的特性就是没有重复元素,所以是不会新增重复的元素的
    In [45]: s = {0, 1, 2}
    
    In [46]: s.add(3)    # 和列表类似, 增加单个元素, 原地修改
    
    In [47]: s
    Out[47]: {0, 1, 2, 3}
    
    In [48]: s.add(3)    # 增加已存在的元素, 什么也不做
    
    In [49]: s
    Out[49]: {0, 1, 2, 3}
    
    In [50]: s.update(range(4, 7))   # 和列表类似, 附加一个可迭代对象, 原地修改
    
    In [51]: s
    Out[51]: {0, 1, 2, 3, 4, 5, 6}
    
    In [52]: s.update(range(4, 7))   # 对于已经存在的元素, 什么也不做
    
    In [53]: s
    Out[53]: {0, 1, 2, 3, 4, 5, 6}
    
    update的实现
        In [54]: for e in itrator:
            ...:     s.add(e)
    

    删除

    • remove:删除给定的元素, 元素不存在, 抛出KeyError
    • discard:删除给定的元素, 元素不存在, 什么也不做
    • pop:随机删除一个元素并返回, 集合为空, 抛出KeyError。在集合中无法根据索引删除(不是线性结构)
    • clear:清空集合
    In [55]: s.remove(0)   # 删除已经存在的值
    
    In [56]: s
    Out[56]: {1, 2, 3, 4, 5, 6}
    
    In [57]: s.remove(10)   # 删除不存在的值, 抛出KeyError
    ---------------------------------------------------------------------------
    KeyError                                  Traceback (most recent call last)
    <ipython-input-57-99f2b84d3df8> in <module>()
    ----> 1 s.remove(10)
    
    KeyError: 10
    
    In [58]: s.pop()   # 删除并返回删除的元素
    Out[58]: 1
    
    In [59]: s
    Out[59]: {2, 3, 4, 5, 6}
    
    In [60]: s.clear()   # 清空
    
    In [61]: s.pop()    # 当集合为空时, 抛出KeyError
    ---------------------------------------------------------------------------
    KeyError                                  Traceback (most recent call last)
    <ipython-input-61-e76f41daca5e> in <module>()
    ----> 1 s.pop()
    
    KeyError: 'pop from an empty set'
    
    In [62]: s = set(range(10))
    
    In [63]: s
    Out[63]: {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
    
    In [64]: s.discard(3)   # 删除一个已经存在的值, 删除并不返回
    
    In [65]: s
    Out[65]: {0, 1, 2, 4, 5, 6, 7, 8, 9}  
    
    In [66]: s.discard(10)   # 删除一个不存在的值, 也不返回任何值
    

    修改

    集合不能修改单个元素

    查找

    集合不能通过索引访问。
    集合没有访问单个元素的方法。

    集合不是线性结构, 集合元素没有顺序

  • 相关阅读:
    Windows XP SP1 Privilege Escalation
    A way escape rbash
    A trick in Exploit Dev
    wget.vbs & wget.ps1
    IDEA创建普通java和web项目教程
    初始Mybatis
    JAVA高级面试题
    JVM执行原理
    java-- 位运算
    JAVA---XML
  • 原文地址:https://www.cnblogs.com/cishi/p/13023173.html
Copyright © 2011-2022 走看看