數據類型是一種值的集合以及定義在這種值上的一組操作。一切語言的基礎都是數據結構,所以打好基礎對于后面的學習會有百利而無一害的作用。
python內置的常用數據類型有:數字、字符串、Bytes、列表、元組、字典、集合、布爾等
1.什么是列表
lst[#] 通過下標訪問,從0開始。
ps:如果#超過下標的范圍時候會出現IndexError的錯誤。
如果#為負號,則索引從右邊開始,#無論為正負均有范圍,超過范圍會報錯。
lst = list(range(0,9)) #生產列表
l1 = lst[3] #通過正索引訪問元素
l2 = lst[-1] #通過負索引訪問元素
print(l1)
print(l2)
#說明,如果正負索引超界,則會報錯。
#錯誤代碼:IndexError: list index out of range
2 .列表元素查找
查找元素:L.index( value,[start[stop]])
方法:返回查找到的第一個value值的索引。
start表示從第幾個索引開始,stop表示到哪個索引結束,均可省略。
b.但是如果出現stop,其前必須有start值,索引時包含start位置不包含stop位置。
c.如果匹配不到元素,則返回:ValueError: xx is not in list
d.index查找元素的時間復雜的為O(n)
lst = list(range(11,19)) print(lst)[11, 12, 13, 14, 15, 16, 17, 18]lst.index(13) #13的索引值為2
統計元素:L.count(value) 統計列表中出現多少個value值。
len(L),求list列表的長度。
count方法的時間復雜的為O(n)
3 .列表元素操作
a.修改元素
直接賦值,L[#]=value。
#為列表的索引值
索引不能越界,會報錯IndexError: list assignment index out of range
修改列表自身
lst = list(range(1,10)) lst[2]=111 lst[4]=123lst[1, 2, 111, 4, 123, 6, 7, 8, 9]
b.增加元素
L.append(#),修改L本身,并且追加在列表末尾。
L.extend([#1,#2,#3]) , 將可迭代對象擴展到列表末尾。
L+[‘a','b','c'] ,不修改列表本身,返回一個新的列表。
c.插入元素
L.insert(idx,#),將在該idx前插入#,會修改L本身。
當idx為正數,且大于列表本身的索引數,
會實現append方法將插入在元素最末尾;當idx為負數,且小于-len(L)+1時將會插入到列表最前。
append的時間復雜度是O(1),效率和數據的規模無關。
insert的時間復雜度是O(n),效率個數據規模正相關。
d.移除元素
L.remove(value),修改自身,從左到右刪除第一個匹配到的值。
L.pop(idx),返回并刪除索引指向的值。如果不指定idx,將刪除列表最后的元素。
pop不指定值時,時間復雜度是O(1)的;
pop指定idx時,時間復雜度是O(n)的。
L.clear(),刪除索引元素。慎用,會引起垃圾回收。
新聞熱點
疑難解答