python 學習筆記之list

來源:互聯網
上載者:User

標籤:

list主要的函數:
    • 建立List
    1. >>> l = [1,(1,2),2,"3"]  
    2. >>> print l  
    3. [1, (1, 2), 2, ‘3‘]  
    • 添加

list.append(x)  #增加一個元素到列表中,等同於list[len(list):] = [x]

list.extend(L) #增加一個list到列表中,等同於list[len(list):] = L

list.insert(i, x) #在指定位置插入元素x

    • 更新

沒有合適的函數,可以使用下標取值,並賦值。比如:l[1] = 1.5

    • 刪除

list.remove(x) #刪除第一個為x元素, 沒有元素x,就報錯

list.pop([i]) #在給定位置i 刪除list,如果沒有i,則刪除list最後一個元素

list[i:j]  #解釋參考取值部分,可以用於插值


    • 取值

list.index(x) # 取第一個為x的元素位置,如果沒有報錯

list[i] #取i位置的元素

list[i:j] #取>=i&& < j的列表片段, 如果i或者j為空白,則表示取開始到j的片段列表或者i到結尾的列表片段。 如果j=-1,表示i到倒數第一個元素的列表片段(相當於j = len(list) -1)。  

    • 計算個數

list.count(x) #統計x在列表中的個數,沒有為0

    • 排序

list.sort(cmp=None, key=None, reverse=false) #排序

    • 逆序

list.reverse() #逆序

使用list仿造stack
>>> stack = [3, 4, 5]>>> stack.append(6)>>> stack.append(7)>>> stack[3, 4, 5, 6, 7]>>> stack.pop()7>>> stack[3, 4, 5, 6]>>> stack.pop()6>>> stack.pop()5>>> stack[3, 4]

使用list仿造queue直接使用list刪除第一個元素的效率比較低,因為需要移動元素。
>>> 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 arrivaldeque(['Michael', 'Terry', 'Graham'])

三個函數有意思的函數介紹filter  #過濾滿足條件的結構,返回listmap()  #計算函數的值,組成 listreduce() #兩兩計算函數的值,返回元素值。比如:reduce(add,[1,2,3,4])  1+2 +3 + 4
>>> def f(x): return x % 3 == 0 or x % 5 == 0...>>> filter(f, range(2, 25))[3, 5, 6, 9, 10, 12, 15, 18, 20, 21, 24]>>> def cube(x): return x*x*x...>>> map(cube, range(1, 11))[1, 8, 27, 64, 125, 216, 343, 512, 729, 1000]>>> seq = range(8)>>> def add(x, y): return x+y...>>> map(add, seq, seq)[0, 2, 4, 6, 8, 10, 12, 14]>>> def add(x,y): return x+y...>>> reduce(add, range(1, 11))55
list理解
sequares = [x**2 for x in range(10)]#等同於  squares = map(lambda x: x**2, range(10))>>> squares[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]>>> [(x, y) for x in [1,2,3] for y in [3,1,4] if x != y][(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]
嵌套list理解(複雜)
>>> 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):...     transposed.append([row[i] for row in matrix])...>>> transposed[[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]]#也可以使用zip函數>>>>>> zip(*matrix)[(1, 5, 9), (2, 6, 10), (3, 7, 11), (4, 8, 12)]



著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

python 學習筆記之list

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.