美文网首页
python基本数据结构

python基本数据结构

作者: gpfworld | 来源:发表于2019-08-17 14:43 被阅读0次

    Python

    数据主要分为:

    • 整数型 ;数字的整数
    • 浮点型; 数字带小数
    • 字符串; 用 ‘’ 或者 “” 引用的任意文本
    • 布尔型;只有 True 和 ``False

    数据结构分为:

    • 列表 list
    • 元祖 tuple
    • 字典 dict
    • 集合 set

    列表-list

    list是一种有序的集合,可以随时添加和删除其中的元素。

    创建列表 用 [] 符号

    list索引为0开始的,索引0 表示第1个元素,以此类推

    
    #创建一个list 列表
    L=[1,"hello",True,1.2]
    print(L)#打印出L列表
    print(len(L))#利用len()方法查询列表的长度
    print(L[0],L[1])#根据索引 查询 列表中的数据,索引是从0 开始的
    #切片方法活用
    print(L[0:2])# 切片 从索引0 到 1提取list的元素
    print(L[1:0])#q切片 从索引1到最后的元素全部提取
    print(L[-1])#提取倒数第一个元素
    print(L[-3:0])#倒数第三个元素 往后提取
    print(L[::2])#切片 步长为2
    print(L[::-1])#倒叙 打印出list
    
    append方法每次只能在末尾填入一个元素;
    insert方法可在指定的位置插入一个元素;
    L.append('python')#在列表的最后插入元素
    L.insert(0,"Love")
    
    pop方法在不指定参数时默认删除末尾元素,也可以指定删除某个位置的元素;
    remove方法删除指定的元素值;
    clear方法清空列表元素;
    del函数删除列表对象;
    L.pop()#末尾删除一个元素
    print(L)
    L.pop(1)#指定一个位置删除一个元素
    print(L)
    L.remove(True)
    print(L)
    L.clear()
    print(L)
    
    copy方法复制一个物理对象,而非视图对象;
    count方法计数;
    index方法返回索引位置;
    reverse方法实现元素颠倒;
    sort方法排序
    L1=['a','a','b','c','d','e','f','g']
    L2=L1.copy()#复制list
    print(L2)
    print(L1.count('a'))#计“a”出现吃次数
    print(L1.index('b'))#反为b的索引位子
    L1.reverse()#颠倒元素
    print(L1)
    L1.sort()#默认升序排序
    print(L1)</pre>
    

    元组

    是不可变的序列,没有增,删,改的权限;

    只能查询和使用索引,切片等一些功能

    元组最大的好处是可以保证数据的安全。

    T=(1,2,'a','b')
    print(T)
    print(T[0])
    print(T[0:2])</pre>
    

    字典

    花括号{}或dict函数来构造键-值对

    #创建名字和年龄的字典,名字为键,年龄为值
    name_age={"da_wang":27,"liu":26,"kong":12}
    print(name_age)
    print(name_age["kong"])
    #根据key值 从新付给新的数据
    name_age["kong"]=27
    print(name_age)
    #要删除一个key,用pop(key)方法,对应的value也会从dict中删除:
    print(name_age.pop("liu"))
    
    #要避免key不存在的错误,有两种办法,一是通过in判断key是否存在:
    print("da" in name_age)
    #通过dict提供的get方法,如果key不存在,可以返回None,或者自己指定的value:
    print(name_age.get("da_wang"))
    
    

    List比较,dict有以下几个特点:

    1. 查找和插入的速度极快,不会随着key的增加而变慢;
    2. 需要占用大量的内存,内存浪费多。

    而list相反:

    1. 查找和插入的时间随着元素的增加而增加;
    2. 占用空间小,浪费内存很少。

    所以,dict是用空间来换取时间的一种方法。

    dict可以用在需要高速查找的很多地方,在Python代码中几乎无处不在,正确使用dict非常重要,需要牢记的第一条就是dict的key必须是不可变对象

    集合:

    集合是一个无序不重复元素的集。基本功能包括关系测试和消除重复元素。

    可以用大括号({})创建集合。注意:如果要创建一个空集合,你必须用 set() 而不是 {} ;

    >>> # 以下演示了两个集合的操作
    ...
    >>> a = set('abracadabra')
    >>> b = set('alacazam')
    >>> a                                  # a 中唯一的字母
    {'a', 'r', 'b', 'c', 'd'}
    >>> a - b                              # 在 a 中的字母,但不在 b 中
    {'r', 'd', 'b'}
    >>> a | b                              # 在 a 或 b 中的字母
    {'a', 'c', 'r', 'd', 'b', 'm', 'z', 'l'}
    >>> a & b                              # 在 a 和 b 中都有的字母
    {'a', 'c'}
    >>> a ^ b                              # 在 a 或 b 中的字母,但不同时在 a 和 b 中
    {'r', 'd', 'b', 'm', 'z', 'l'}</pre>
    
    

    http://www.runoob.com/python3/python3-data-structure.html

    扩展:

    内置标准库模块:collection

    我们都知道,Python拥有一些内置的数据类型,比如str, int, list, tuple, dict等, collections模块在这些内置数据类型的基础上,提供了几个额外的数据类型:

    • namedtuple(): 生成可以使用名字来访问元素内容的tuple子类
    • deque: 双端队列,可以快速的从另外一侧追加和推出对象
    • Counter: 计数器,主要用来计数
    • OrderedDict: 有序字典
    • defaultdict: 带有默认值的字典

    https://www.cnblogs.com/zhizhan/p/5692668.html

    deque

    import collections 
    d = collections.deque()
    索引方式:
    d[0]  d[-1]  
    x.append():在列表的右边添加
    x.appendleft():在队列的左边添加
    x.pop():移除元素并返回,从右边
    x = d.pop()
    x.popleft():移除元素并返回,从左边
    
    x.clear():清空列表
    x.count():队列某个元素出现的次数
    x.extend():往右边扩展,添加多个数据
    d.extend([3,4,5])
    x.extendleft():往左边扩展
    
    x.insert():指定位置插入元素
    d.insert(2,'z')
    
    x.reverse():反转
    x.rotate():把后面的元素放到前面,转圈的形式
    d.extend(['a','b','c','d','e'])
    d.rotate(2)  
    #输出:deque(['d', 'e', 'a', 'b', 'c'])
    
    x.index():取队列的索引位置,默认从左
    d.index('e')</pre>
    

    相关文章

      网友评论

          本文标题:python基本数据结构

          本文链接:https://www.haomeiwen.com/subject/uxwxlctx.html