美文网首页
重新撸 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