用途:用於存一個或多個不一樣類型的值python
定義:經過中括號存值,每一個值之間經過逗號進行分隔app
l1 = [1,'a',3,'b']
特性:有序、可變、存多個值的數據類型函數
索引取值:正向、反向均可存取值code
l1 = [1,'a',3,'b',['egon','alex','sean']] print(l1[1]) # 打印結果:a print(l1[-1]) # 打印結果:['egon', 'alex', 'sean']
索引切片orm
l1 = [1,'a',3,'b',['egon','alex','sean']] print(l1[1:4]) # 獲取索引爲[1-4)之間的元素,不包含索引爲4的元素 print(l1[2:]) # 獲取索引爲2 以後的元素,包含索引爲2的元素 print(l1[:3]) # 獲取索引爲3 以前的元素,不包含索引爲3的元素 print(l1[-2:]) # 獲取索引爲-2 以前的元素,包含索引爲-2 的元素 print(l1[:-2]) # 獲取索引爲-2 以後的元素,不包含索引爲-2 的元素
append對象
語法:list.append()
,將一個元素增長到列表的最後排序
l1 = [1,'a',3,'b'] l1.append(['name','age']) # 一個列表也是一個元素 print(l1) # 打印結果:[1, 'a', 3, 'b', ['name', 'age']]
insert索引
語法:list.insert()
經過索引,將元素增長到指定位置隊列
l1 = [1,'a',3] l1.insert(1,'b') # 將'b' 插入到索引爲1 的位置,列表中的其餘元素日後移動 print(l1) # 打印結果:[1, 'b', 'a', 3]
extendelement
語法:list.exteng()
將可迭代對象或集合打散後,新增到列表的最後
# 將字符串新增到列表中 l1 = [1,'a',3] l1.extend("abc") print(l1) # 打印結果:[1, 'a', 3, 'a', 'b', 'c'] # 將元組新增到列表中 l1 = [1,'a',3] l1.extend((1,3,4)) print(l1) # 打印結果:[1, 'a', 3, 1, 3, 4] # 將字典新增到列表中,只取字典的key值 做爲列表中的元素 l1 = [1,'a',3] l1.extend({'name':'dawn','age':18}) print(l1) # 打印結果:[1, 'a', 3, 'name', 'age'] # 將集合新增到列表中 l1 = [1,'a',3] l1.extend({4,5,6}) print(l1) # 打印結果:[1, 'a', 3, 4, 5, 6]
remove
語法:list.remove()
經過指定值刪除,不能經過索引刪除,會報錯,存在相同元素時,只會刪除第一個
l1 = [1, 'a', 3, 4, 5, 6] # l1.remove(0) # 經過索引刪除,報錯 l1.remove(4) print(l1) # 打印結果:[1, 'a', 3, 5, 6]
pop
語法:list.pop()
不傳參時,默認從最後開始刪除,不然刪除指定索引元素。返回值爲被刪除的元素,remove() 沒有返回值
l1 = [1, 'a', 3, 4, 5, 6] d1 = l1.pop() d2 = l1.pop(1) print(d1) # 打印結果:6 print(d2) # 打印結果:a print(l1) # 打印結果:[1, 3, 4, 5]
del
語法:del element
萬能刪除方法
# del的使用,萬能刪除 l1 = [1, 2, 3, 4, 5] print(f"l1:{l1}") del l1[2] print(f"刪除後的l1:{l1}")
count
語法:list.count()
統計當前列表內指定元素的個數
# count():用於統計當前列表內指定元素的個數 l1 = ['egon', 'alex', 'tank', 'sean', 'a'] print(f"元素a 出現的次數:{l1.count('a')}")
index
語法:list.index()
獲取當前指定元素的索引值,能夠指定查找範圍(顧頭不顧尾),若是沒有找到,報錯
# index():獲取當前指定元素的索引值,可指定查找範圍(顧頭不顧尾),若是沒有找到,提示ValueError異常 l1 = ['egon', 'alex', 'tank', 'sean', 'a'] print(f"alex在列表中的出現的位置是{l1.index('alex')}") print(f"從索引0到2中查找tank出現的位置是:{l1.index('tank',0,3)}")
sort
語法:list.sort()
用於排序,可指定排序的方式,默認排序從小到大,reverse=False
# sort():排序,在原列表中排序,可指定排序的方式,默認排序爲正序 l1 = [9, 5, 84, 2, 56, 35, 28] l1.sort() print("l1默認排序後爲:{list}".format(list=l1)) l1.sort(reverse=True) print("l1的倒序爲:{list}".format(list=l1)) # 字符串的排序方式按照ASCII 碼排序 null < 空格 < 0 < 9 < A < Z < a < z l2 = ['1', 'a', 'M', '9', 'c'] l2.sort() print("l2默認排序後爲:{list}".format(list=l2)) l2.sort(reverse=True) print("l2的倒序爲:{list}".format(list=l2))
# sort() 和sorted() 的區別 """sort() 和sorted() 的區別 sort() 是列表List 的內置方法,可用經過類名.方法名調用 sort() 是在原列表自己排序,操做,排序完後,不記錄原來的位置 sorted() 是python 級的內置方法,調用sorted() 方法後,會生成一個新的列表,列表原來的順序依然保留 """ l1 = [9, 5, 84, 2, 56, 35, 28] print("l1使用sort 排序後爲:{list}".format(list=l1.sort())) # 沒有返回值,打印結果爲:None print("l1使用sorted 排序後爲:{list}".format(list=sorted(l1))) # 返回值爲排序後的列表 l1.sort() print("l1使用sort 排序後爲:{list}".format(list=l1))
clear
語法:list.clear()
清空列表中的元素,返回一個空列表
# clear():清空列表中的元素,返回一個空列表 l1 = [9, 5, 84, 2, 56, 35, 28] print("l1的內容爲:{list}".format(list=l1)) print("l1被清空後:{list}".format(list=l1.clear()))
隊列:先進先出
# 隊列:先進先出; l1 = [] l1.append(1) l1.append(2) l1.append(3) print("隊列的實現:") # 實現隊列:先進先出 print(l1) for i in l1: l1.pop(0) print(l1)
棧:先進後出
棧:先進後出 l1 = [] l1.append(1) l1.append(2) l1.append(3) print("棧的實現:") print(l1) for i in l1: l1.pop() print(l1)
拷貝
至關於賦值操做,list2 = list1
當list1 的內容發生改變時,list2 的值也會相應的發生改變
list1 = [1,2,3,['a','b']] list2 = list1 print(list1) # 打印結果:[1,2,3,['a','b']] print(list2) # 打印結果:[1,2,3,['a','b']] list1.append('e') print(list1) # 打印結果:[1,2,3,['a','b'],'e'] print(list2) # 打印結果:[1,2,3,['a','b'],'e']
淺拷貝
淺拷貝是copy模塊中的copy()函數,list2 = copy.copy(list1)
,當list1 中的非子序列發生改變,list2 不會發生改變,但若是list1 內的子序列發生變化,list2 的對應子序列也會發生改變
import copy as cy list1 = [1,2,3,['a','b']] list2 = cy.copy(list1) list1.append(4) print(list1) print(list2) # list2 沒有發生改變 list1[3].append('e') print(list1) print(list2) # list2 子序列中追加了 'e'
深拷貝
深拷貝是copy模塊中的deepcopy()函數,list2 = copy.deepcopy(list1)
,不管list1 怎麼改變,list2 都不會改變
import copy as cy list1 = [1,2,3,['a','b']] list2 = cy.deepcopy(list1) list1.append(4) print(list1) print(list2) # list2 沒有發生改變 list1[3].append('e') print(list1) print(list2) # list2 依然沒有發生改變