標籤:python
列表是Python最具靈活性的有序集合物件類型。與字串不同,列表是可變對象。可以通過指定的位移和分區、列表調用、刪除語句等方法來實現。
列表的特點如下:
任意對象的有序集合;
通過位移讀取;
可變長度、異構以及任意嵌套;
對象引用數組。
常見列表操作:
L=[] #建立空列表L=[0,1,2,3] #索引0-3L=[‘abc‘,[‘def‘,‘ghi‘]] #嵌套子列表L=list(‘spam‘)L=list(range(-4,4)) #[-4, -3, -2, -1, 0, 1, 2, 3]L[i]L[i][j]L[i:j]len(L)
合併作業,“+”號兩邊類型必須相同,否則會報錯。
>>>L=[0,1,2,3] >>>L2=[2,3,4,5,6]>>>L + L2[0, 1, 2, 3, 2, 3, 4, 5, 6]>>>str([1,2]) + "34"‘[1,2]34‘>>>[1,2] + list("34")
列表迭代和解析:
>>>L = [x**2 for x in range(5)] #列表解析>>>L[0, 1, 4, 9, 16
這個運算式功能等同於手動構建一個for迴圈建立列表,但是列表解析的編碼更簡單,且運行起來更快。
>>>res = []>>>for c in ‘spam‘>>>res.append(c*4)>>>res[‘ssss‘, ‘pppp‘, ‘aaaa‘, ‘mmmm‘]
用map函數建立新的列表:
>>>list(map(abs,[-1, -2, -4, 0, 3]))[1, 2, 4, 0, 3]
list的分區,要麼第一個序號是0,要麼最後一個序號是0:
>>>L=[‘spam‘, ‘ham‘, ‘turkey‘]>>>L[2]‘turkey‘>>>L[-2]‘spam‘>>>L[1:][‘ham‘, ‘turkey‘]>>>L[:-1][‘spam‘, ‘ham‘]
二維數組:
>>>matrix = [[1,2,3], [4,5,6], [7,8,9]]>>>matrix[1][4,5,6]>>>matrix[2][2]9
原處修改列表:
>>>L=[‘spam‘, ‘ham‘, ‘eggs‘]>>>L[1]=‘fish‘ #單個賦值>>>L[‘spam‘, ‘fish‘, ‘eggs‘]>>>L[0:2]=[‘eat‘, ‘more‘] #分區賦值>>>L[‘eat‘, ‘more‘, ‘eggs‘]
>>>L.append(‘please‘)>>>L[‘eat‘, ‘more‘, ‘eggs‘, ‘please‘]>>>L.sort() #會原地修改L>>>L[‘eat‘, ‘eggs‘, ‘more‘, ‘please‘]
註:L.append(‘please‘)和L+[‘please‘]結果類似,但不同的是前者會原地修改L,而後者會產生新的列表。
Python學習:列表(list)