zoukankan      html  css  js  c++  java
  • 数据结构

    数据结构
    list.append(x)    把一个元素添加到列表的结尾,相当于 a[len(a):] = [x]。
    list.extend(L)    通过添加指定列表的所有元素来扩充列表,相当于 a[len(a):] = L。
    list.insert(i, x)    在指定位置插入一个元素。第一个参数是准备插入到其前面的那个元素的索引,例如 a.insert(0, x)
    会插入到整个列表之前,而 a.insert(len(a), x) 相当于 a.append(x) 。
    list.remove(x)    删除列表中值为 x 的第一个元素。如果没有这样的元素,就会返回一个错误。
    list.pop([i])    从列表的指定位置移除元素,并将其返回。如果没有指定索引,a.pop()返回最后一个元素。元素随即从列表中被移除。
    (方法中 i 两边的方括号表示这个参数是可选的,而不是要求你输入一对方括号,你会经常在 Python 库参考手册中遇到这样的标记。)
    list.clear()    移除列表中的所有项,等于del a[:]。
    list.index(x)    返回列表中第一个值为 x 的元素的索引。如果没有匹配的元素就会返回一个错误。
    list.count(x)    返回 x 在列表中出现的次数。
    list.sort()    对列表中的元素进行排序。
    list.reverse()    倒排列表中的元素。
    list.copy()    返回列表的浅复制,等于a[:]。
    
    将列表当做堆栈使用
    列表方法可以使得列表可以很方便的作为一个堆栈使用,堆栈作为独特的数据结构,最先进入的元素最后一个被释放(先进后出)
    用append()方法可以把一个元素添加到堆栈顶,用不指定元素索引的pop()方法可以把一个元素从堆栈释放出来
    
    将列表当队列使用
    也可以吧列表当队列使用,只是队列里第一个加入的元素,第一个取出来,但是拿列表用做这样的目的的效率不高
    在列表的最后添加或者弹出元素速度快,然而在列表里插入或者从头部弹出速度不快(因为所有的其他元素都是一个一个移动)
    
    列表推导式
    列表推导式提供了从序列创建列表的简单途径,通常应用程序将一些操作应用用于某个序列的某个元素,用其获得的结果作为生成
    新列表的元素,或者根据确定的判断条件创建子序列
    每个列表堆导式都在for之后跟一个表达式,然后有零到多个for或if子句,返回结果是一个根据表达从其后的for和if上下文
    环境中生成列出来的列表,如果希望表达式堆导出一个元素,就必须用括号
    
    dle语句
    使用del语句可以从一个列表依碎银而不是值来删除一个元素,这与视屏pop()返回一个值不同,可以用del语句从列表中
    删除一个切割,或清空整个列表
    
    a = [1,2,3,4,5,6,7,8,9]
    # del a[0:5]  # 删除索引0 - 5 之间的元素
    # del a[:]    # 删除全部元素
    # print(a)
    
    元组和序列
    a = [123,456,"abc"]
    print(a[0])
    
    集合
    集合是一个无序不重复元素的集,基本功能包括关系测试和消除去重元素
    可以用大括号({})创建集合,如果要创建一个空集合必须用set()而不是{},后者创建一个空字典
    a = {"abc",123,465,"li","cheng","long",123,123,456}
    print(a)
    
    字典
    序列是以连续的整数为索引,不同的是字典以关键字为索引,关键字可以是任意不可变类型,通常用字符串或者数值
    理解字典的最佳方法是把它看成是无序的键=>值对,在同一个字典内,关键字必须是互不相同
    一对大括号创建一个空的字典:{}
    a = {123:456,"cheng":"long"}
    print(a)
    
    构建函数dict()直接从键值对元组列表构建字典,如果有固定模式,列表堆导式指定特定的键值对
    s = dict(sape=4139, guido=4127, jack=4098)
    print(s)
    b = dict([('sape', 4139), ('guido', 4127), ('jack', 4098)])
    print(b)
    
    遍历技巧
    在字典中遍历时,关键字和对应的值可以使用iteme()方法同时解读出来
    s = {'cheng': 'long', 'hello': 'world'}
    for a,b in s.items():
        print(a,b)
    
    在序列中遍历时,索引位置和对应值可以使用enumerate()函数同时得到
    for a, b in enumerate([1, 2, 3, 4, 5]):
        print(a, b)
    
    同时遍历两个或多个的序列,可以只用zip()组合
    a = ['mingzi', 'xiaohuo', 'xiaozi']
    # b = ['long', 'chenglong', 'lichenglong']
    # c = ["chi","he","wan"]
    # for q, w, d in zip(a, b, c):
    #     print("ni jiao shen me {0} ? " "ta shi {1} ," "xi huan shen me {2}!".format(q, w, d))
    
    要反方向遍历一个序列,首先指定这个序列,然后调用reversed()函数
    for s in reversed(range(1,10,2)):
        print(s)
    
    要按顺序遍历一个序列,使用sorted()函数返回一个已排列的序列,并不修改原值
    s = [1, 2, 3, 4, 5, 6, 7, 8, 9, ]
    for q in sorted(set(s)):
        print(q)
  • 相关阅读:
    素数筛法
    UVA, 967 Circular
    软件开发一些常用工具
    iOS 一些常用方法笔记
    iOS 项目调试
    UINavigation的基本使用
    Tomcat多实例部署
    五联疫苗介绍
    互联网公司架构
    分布式事务
  • 原文地址:https://www.cnblogs.com/lichenglong521/p/9541235.html
Copyright © 2011-2022 走看看