Python_note_006(Python中的列表,以及列表的增刪改查操作)
阿新 • • 發佈:2020-09-08
列表的建立
-
使用中括號(元素之間使用逗號分開)
ls=['zhangsan','lisi',200,15.5]
-
使用內建函式list
ls2=list(['zhangsan','lisi',200,15.5])
列表的特點
-
列表的元素是按順序排列的
-
索引對映唯一一個數據
-
列表可以儲存重複資料
-
任意資料型別混存
-
根據需要動態分配和回收記憶體
#列表 混存任意資料型別 ls=['zhangsan','lisi',200,15.5] print(id(l)) print(type(l)) print(l) #索引對映唯一一個數據 列表可以儲存重複資料 ls2=list(['zhangsan','zhangsan',200,15.5]) print(l2[0],l2[-1])#正向索引0到N,逆向索引-N到-1
列表的查詢操作
-
獲取列表中指定元素的索引用 .index()
#.index()查詢索引 ls3=list(['zhangsan','zhangsan',200,15.5]) #如果列表中有相同元素,只返回相同元素的第一個元素的索引。 #如果查詢的元素列表不存在,則報異常ValueError: '***' is not in list print(ls3.index('zhangsan')) #指定索引範圍內查詢指定的索引 print(ls3.index('zhangsan',1,3))
-
獲取列表中的單個元素
#正向索引0到N,逆向索引-N到-1 l4=list(['lisi',123,'wangwu',20.5]) print(l4[2])#檢視索引為2的元素 print(l4[-2])#檢視索引為-2的元素 #如果查詢的索引不存在會報錯IndexError: list index out of range
-
獲取列表的多個元素
語法格式:列表名[start: stop: step]
#獲取列表的多個元素 #---------步長step為正數的情況-------------- ls=[13,25,2131,123,135,431] # start不寫,預設是從索引為0開始 如果不寫步長step,預設是步長就是1 ls2=ls[1:4:2] print('原列表',id(ls)) print('切的分段',id(ls2)) print(ls2) #---------步長step為負數的情況-------------- ls3=ls[::-1]#輸出結果[431, 135, 123, 2131, 25, 13] ls4=ls[5:2:-1]#輸出結果[431, 135, 123] print(ls3,ls4)
-
判斷指定元素在列表中是否存在
#not in 和 in ls=[13,25,2131,123,135,431] print(13 not in ls) print(13 in ls)
-
列表元素的遍歷
ls=[13,25,2131,123,135,431] for n in ls: print(n)
-
列表元素的新增操作
#列表名.append()在列表的末尾新增一個元素 ls=[13,25,2131,123,135,431] print('原列表',ls) ls.append('張三') print('新增後的列表',ls) #列表名.extend()向列表的末尾一次性新增多個元素 ls2=['zhangsan','lisi'] ls.extend(ls2) print(ls) #列表名.insert()在任意位置上新增一個元素 ls.insert(2,'什麼') print(ls) #在任意位置新增n個元素(切片) #把切掉的位置用一個新的列表新增進去 ls[1::]=[True,False] print(ls)
-
列表元素的刪除操作
#remove()方式,從列表刪除一個元素,如果有重複只刪除一個 ls.remove(13) #ls.remove(1231223)如果指定的元素不存在,就會報錯:ValueError: list.remove(x): x not in list print(ls) #pop()方式,根據索引移除元素 ls.pop(1) #ls.pop(123)如果指定的索引不存在,就會報錯:IndexError: pop index out of range print(ls) ls.pop()#如果不指定索引,將刪除列表的最後一個 print(ls) #切片方式,刪除至少一個元素,將會產生一個新的物件 new_ls=ls[1:3] print('原列表',ls,id(ls)) print('新列表',new_ls,id(new_ls)) #不產生新的列表物件,而是刪除原列表的內容 ls[1:2]=[] print(ls,id(ls)) #清除列表中的所有元素 ls.clear() print(ls) #del 列表名,將列表物件刪除 del ls #print(ls) NameError: name 'ls' is not defined
-
列表元素的修改操作
#一次修改一個值 ls=[1,2,3,4,5] ls[2]=100 print(ls) #指定切片賦予一個新的值 ls[1:4]=[1000,2000,3000] print(ls)