• 2016.07.17-18 集合方法


    集合(set):
        特性1.集合的元素都是唯一的。
            2.集合是无序的(非线性序列)。
        set的定义(初始化):
            s = set()
            s = {1, 2, 3}
        
        增加元素:添加的元素必须是可hash的,list、set、bytearray、dict是不可hash的,所以不能作为set的元素,通常来说内置类型不能变的都是可hash的。
            add方法:添加一个元素到集合,如果该元素在集合已经存在,集合不会发生任何改变(集合的元素都是唯一的)。
            add(...)
                Add an element to a set.
                This has no effect if the element is already present.        
                >>> s = {1, 2, 3}
                >>> s.add(4)
                >>> s
                {1, 2, 3, 4}
                >>> s.add(2)
                >>> s
                {1, 2, 3, 4}
    
            update方法:将一个可迭代对象更新到集合。
            update(...)
                Update a set with the union of itself and others.    
                >>> s
                {1, 2, 3, 4}
                >>> s.update({4, 5, 6})
                >>> s
                {1, 2, 3, 4, 5, 6}
                >>> s.update([1, 22 ,11])
                >>> s
                {1, 2, 3, 4, 5, 6, 22, 11}
                >>> s.update('python')
                >>> s
                {1, 2, 3, 4, 5, 6, 11, 22, 'h', 'n', 'y', 'p', 'o', 't'}
                >>> s.update({'a':1, 'b':2}) 
                >>> s
                {1, 2, 3, 4, 5, 6, 'b', 11, 22, 'a', 'h', 'n', 'y', 'p', 'o', 't'} #update字典时只会添加字典的key到集合。
                >>> 
        删除元素:
            remove方法:删除集合的一个元素,如果该元素不存在,则抛出一个KeyError异常。
            remove(...)
                Remove an element from a set; it must be a member.
                If the element is not a member, raise a KeyError.
                >>> s
                {1, 2, 3, 4, 5, 6, 'b', 11, 22, 'a', 'h', 'n', 'y', 'p', 'o', 't'}
                >>> s.remove(1)
                >>> s
                {2, 3, 4, 5, 6, 'b', 11, 22, 'a', 'h', 'n', 'y', 'p', 'o', 't'}
                >>> s.remove(100)
                Traceback (most recent call last):
                  File "<stdin>", line 1, in <module>
                KeyError: 100
                >>> 
            discard方法:删除集合的一个元素,如果该元素不存在,则什么都不做。
            discard(...)
                Remove an element from a set if it is a member.
                If the element is not a member, do nothing.
                >>> s
                {2, 3, 4, 5, 6, 'b', 11, 22, 'a', 'h', 'n', 'y', 'p', 'o', 't'}
                >>> s.discard(2)
                >>> s
                {3, 4, 5, 6, 'b', 11, 22, 'a', 'h', 'n', 'y', 'p', 'o', 't'}
                >>> s.discard(200)
                >>> 
            pop方法:随机删除集合的一个元素,并返回该元素,如果集合为空则抛出一个KeyError异常。
            pop(...)
                Remove and return an arbitrary set element.
                Raises KeyError if the set is empty.
                >>> s
                {1, 2, 3}
                >>> s.pop()
                1
                >>> s.pop()
                2
                >>> s.pop()
                3
                >>> s.pop()
                Traceback (most recent call last):
                  File "<stdin>", line 1, in <module>
                KeyError: 'pop from an empty set'
                >>> 
            clear方法:删除集合的所有元素。
            clear(...)
                Remove all elements from this set.
                >>> s
                {1, 2, 3}
                >>> s.clear()
                >>> s
                set()
                >>> 
        修改元素和查找元素:
            没有任何方法可以直接修改和查找集合中的某个具体元素,因为集合是无序的,所以没有任何方法能够定位到集合某个元素的位置访问方法:
            集合是可迭代对象,可以使用成员运算符(innot in)
            可以使用for in的方式访问集合
            线性结构的成员运算,时间复杂度是O(n),集合的成员运算,时间复杂度是O(1)
    
    
        额外拓展:时间复杂度
            效率排列:
            O(1)        常数复杂度
            O(logn)        对数复杂度
            O(n)        线性复杂度
            O(n^2)        平方复杂度
            O(n^3)
            O(2^n)        指数复杂度
            O(n!)        阶乘复杂度
  • 相关阅读:
    黑鸟播放器
    Rapid Environment Editor(RapidEE)是一个简易的环境变量编辑器.它包括易于使用的图形用户界面,并取代小型和不方便的Windows编辑框。
    哔哩下载姬DownKyi(原B站视频下载助手) v1.5.2
    PDFXChange Editor Plus v9.3.360.0 Build 360 特别版
    win10设置Python程序定时运行(设置计划任务)
    钉钉自定义机器人介绍
    多标签文件管理器 Multi Commander 11.6.0 Build 2344 + x64 中文免费版
    Wise Care 365 – 世界上最快的系统优化软件
    Honeyview 是一款快速的图片查看器
    最新MCC和MNC国家代码运营商对应表
  • 原文地址:https://www.cnblogs.com/LouisZJ/p/5685799.html
Copyright © 2020-2023  润新知