Python3 列表歸納
1、創建列表
創建一個列表,只要把逗號分隔的不同的數據項使用方括號括起來即可。如下所示:
- list1 = ['Google', 'Runoob', 1997, 2000];
- list2 = [1, 2, 3, 4, 5 ];
- list3 = ["a", "b", "c", "d"];
2、操作列表
類型 |
方法 |
說明 |
參數 |
增 |
list.append(obj) |
在列表末尾添加一個新的對象 |
不管這個對象是什么數據類型, append()都會以一個新元素的方式追加至結尾 |
list.extend(seq) |
在列表末尾追加多個值 |
seq以元素列表的形式進行追加, extend()相當於合並兩個列表 |
|
list.insert(index, obj) |
將指定對象插入列表的指定位置。 |
index -- 對象obj需要插入的索引位置。 obj -- 要插入列表中的對象。 |
|
刪 |
list.pop(obj=list[-1]) |
移除列表中的一個元素, 並且返回該元素的值。 |
不填寫參數,默認最后一個元素 pop()方法帶返回值 |
del list[index] |
根據index索引刪除列表中的一個元素 |
不填寫參數,默認最后一個元素 del 不帶返回值 |
|
list.remove(obj) |
函數用於移除列表中某個值的第一個匹配項。 |
該方法沒有返回值 但是會移除兩種中的某個值的第一個匹配項。 |
|
改 |
list[index]=new_obj |
根據索引位置直接賦值即可 |
|
查 |
list[index] |
可以直接根據索引值查詢 |
|
list[start:end] |
也可以通過遍歷索引的方式查詢多值 |
|
|
list.index(obj) |
函數用於從列表中找出某個值第一個匹配項 的索引位置。 |
obj -- 查找的對象。 |
|
max(list) |
返回列表元素中的最大值 |
list -- 要返回最大值的列表 |
|
min(list) |
返回列表元素中的最小值 |
list -- 要返回最小值的列表。 |
|
統計 |
list.count(obj) |
統計某個元素在列表中出現的次數 |
obj -- 列表中統計的對象。 |
len(list) |
統計列表中的元素個數 |
list -- 要計算元素個數的列表。 |
|
排序 |
list.sort([func]) |
函數用於對原列表進行排序 |
func -- 可選參數, 如果指定了該參數會使用該參數的方法進行排序。 |
list.reverse() |
函數用於反向列表中元素 |
該方法沒有返回值, 但是會對列表的元素進行反向排序。 |
|
復制 |
list.copy() |
函數用於復制列表,類似於list_copy[:] |
返回復制后的新列表 |
清空 |
list.clear() |
函數用於清空列表,類似於del list[:] |
該方法沒有返回值 |
3、注意事項
1.copy()與直接賦值的區別
直接賦值賦過來不是變量是指針地址,方式相當於引用,新值與原值之間元素調整互相影響。
copy()方法相當於重新開辟了一個新的副本,新值與原值互不影響。
代碼舉例:
1 a=[0,1,2,3,4,5] 2 b=a 3 c=a.copy() 4 5 del a[1] 6 ''' 7 各變量值為: 8 a=[0, 2, 3, 4, 5] 9 b=[0, 2, 3, 4, 5] 10 c=[0, 1, 2, 3, 4, 5] 11 ''' 12 13 b.remove(4) 14 ''' 15 各變量值為: 16 a=[0, 2, 3, 5] 17 b=[0, 2, 3, 5] 18 c=[0, 1, 2, 3, 4, 5] 19 ''' 20 21 c.append(9) 22 ''' 23 各變量值為: 24 a=[0, 2, 3, 5] 25 b=[0, 2, 3, 5] 26 c=[0, 1, 2, 3, 4, 5, 9] 27 '''
2、copy()與deepcopy()的區別
Python中的對象之間賦值時是按引用傳遞的,如果需要拷貝對象,需要使用標准庫中的copy模塊。
1. copy.copy 淺拷貝:只拷貝父對象,不會拷貝對象的內部的子對象。
2. copy.deepcopy 深拷貝:拷貝對象及其子對象 。
代碼舉例:
1 import copy 2 a = [1, 2, 3, 4, ['a', 'b']] #原始對象 3 4 b = a #賦值,傳對象的引用 5 c = copy.copy(a) #對象拷貝,淺拷貝 6 d = copy.deepcopy(a) #對象拷貝,深拷貝 7 8 a.append(5) #修改對象a 9 a[4].append('c') #修改對象a中的['a', 'b']數組對象 10 11 print 'a = ', a 12 print 'b = ', b 13 print 'c = ', c 14 print 'd = ', d 15 16 ''' 17 輸出結果: 18 a = [1, 2, 3, 4, ['a', 'b', 'c'], 5] 19 b = [1, 2, 3, 4, ['a', 'b', 'c'], 5] 20 c = [1, 2, 3, 4, ['a', 'b', 'c']] 21 d = [1, 2, 3, 4, ['a', 'b']] 22 '''