美文网首页
重新撸 Python 官方文档01--list

重新撸 Python 官方文档01--list

作者: 大飞哥 | 来源:发表于2017-11-28 21:15 被阅读8次

List-列表
文档地址

1.1 内置函数

文档简单翻译



list.append(x)

列表末端增加元素 等于 a[len(a):] = [x]


list.extend(iterable)

将iterable的所有元素扩展到list后面. 等于 a[len(a):] = iterable.


list.insert(i, x)

插入元素到指定位置. i即第一个参数是要插入元素的索引, 所以 a.insert(0, x) 插入的是整个list的前部, 而 a.insert(len(a), x) 等同于 a.append(x).


list.remove(x)

移除第一个值为x的元素. 若不存在则报错.

list.pop([i])

移除给定位置的元素并返回该元素. 如果没有指定索引值i,则a.pop移除列表最末尾的元素并返回它


list.clear()

清空list. 等同于 del a[:].


list.index(x[, start[, end]])

返回第一个值为x的元素零值索引,若没有这个元素则raise 一个ValueError
start end 是可选参数,将list切片在寻找x,返回的索引值是在list的索引值而不是切片后的。


list.count(x)

返回x出现的次数


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

排序 参数见 sorted()


list.reverse()

反转


list.copy()

返回一个list的浅复制. 等同于 a[:].



1.2 把list用成堆栈

>>> stack = [3, 4, 5]
>>> stack.append(6)
>>> stack.pop()
6
>>> stack.pop()
5
>>> stack
[3, 4]



1.3 把list用成队列

其实list也是可以,就是用 list.insert(0, x) ,但是这样效率就很低,popappend效率是高的,但是insert和从头部pop的话,就很慢,因为其他的元素是一个一个移的。

collections.deque

>>> from collections import deque
>>> queue = deque(["Eric", "John", "Michael"])
>>> queue.popleft() 
'Eric'
>>> queue.popleft()                 # The second to arrive now leaves
'John'


1.4 嵌套列表推到式

考察这样的一个3x4的矩阵:

>>> matrix = [
...     [1, 2, 3, 4],
...     [5, 6, 7, 8],
...     [9, 10, 11, 12],
... ]

则以下列表推导式完成行列的转置操作:

>>> [[row[i] for row in matrix] for i in range(4)]
[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]

上面的推导式等价于:

>>> transposed = []
>>> for i in range(4):
...     # the following 3 lines implement the nested listcomp
...     transposed_row = []
...     for row in matrix:
...         transposed_row.append(row[i])
...     transposed.append(transposed_row)
...
>>> transposed
[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]

内建函数 built-in functions也能完成以上操作 zip():

>>> list(zip(*matrix))
[(1, 5, 9), (2, 6, 10), (3, 7, 11), (4, 8, 12)]

注:zip(*iterables)iterables解绑,再合并归组

zip()

2.1 del 语句

>>> a = [-1, 1, 66.25, 333, 333, 1234.5]
>>> del a[0]
>>> a
[1, 66.25, 333, 333, 1234.5]
>>> del a[2:4]
>>> a
[1, 66.25, 1234.5]
>>> del a[:]
>>> a
[]

del 也能删整个列表

>>> del a

相关文章

网友评论

      本文标题:重新撸 Python 官方文档01--list

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