zoukankan      html  css  js  c++  java
  • python 数据结构 初学时没太注意却发现很有用的点点滴滴

    1.

    list.extend(L)

    将指定列表中的所有元素附加到另一个列表的末尾;相当于a[len(a):] L

    2.

    list.pop([i])

    删除列表中指定位置的元素并返回它。如果未指定索引,a.pop()将删除并返回列表中的最后一个元素。(i 两边的方括号表示这个参数是可选的,而不是要你输入方括号。你会在 Python 参考库中经常看到这种表示法)。

    3.

    list.index(x)

    返回列表中第一个值为 x 的元素的索引。如果没有这样的元素将会报错。

    4.

    list.count(x)

    返回列表中 x 出现的次数。

    5.

    list.sort(cmp=None, key=None, reverse=False)

    原地排序列表中的元素(参数可以用来自定义排序方法,参考sorted()的更详细的解释)。

    注意原地。

    6.

    insertremove 或者 sort之类的方法

    只修改列表而没有返回值打印出来

    -- 它们其实返回了默认值None

    这是 Python 中所有可变数据结构的设计原则。

    7.列表作为栈很方便。pop出栈,append入栈。

    列表方法使得将List当作栈非常容易,最先进入的元素最后一个取出(后进先出)。使用append()将元素添加到栈顶。使用不带索引的pop()从栈顶取出元素。

    类似于列表的后面为栈顶。

    8.列表作为队列(先进先出)不好,效率不高,可用collections.deque

    也可以将列表当作队列使用,

    此时最先进入的元素第一个取出(先进先出);

    但是列表用作此目的效率不高。

    在列表的末尾添加和弹出元素非常快,

    但是在列表的开头插入或弹出元素却很慢 (因为所有的其他元素必须向后移一位)。

    如果要实现一个队列,

    可以使用collections.deque

    它设计的目的就是在两端都能够快速添加和弹出元素。

    例如:

    >>>
    >>> from collections import deque
    >>> queue = deque(["Eric", "John", "Michael"])
    >>> queue.append("Terry")           # Terry arrives
    >>> queue.append("Graham")          # Graham arrives
    >>> queue.popleft()                 # The first to arrive now leaves
    'Eric'
    >>> queue.popleft()                 # The second to arrive now leaves
    'John'
    >>> queue                           # Remaining queue in order of arrival
    deque(['Michael', 'Terry', 'Graham'])








  • 相关阅读:
    如何最快速的找到页面某一元素所绑定的点击事件,并查看js代码
    Python3 实现 JS 中 RSA 加密的 NoPadding 模式
    Python实现京东自动登录
    使用Chrome或Fiddler抓取WebSocket包
    python的ws库功能,实时获取服务器ws协议返回的数据
    js遍历对象所有的属性名称和值
    selenium webdriver 实现Canvas画布自动化测试
    CE教程
    How to Get Text inside a Canvas using Webdriver or Protractor
    HTML <​canvas> testing with Selenium and OpenCV
  • 原文地址:https://www.cnblogs.com/hackerl/p/4783707.html
Copyright © 2011-2022 走看看