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'])








原文地址:https://www.cnblogs.com/hackerl/p/4783707.html