您好,登錄后才能下訂單哦!
1:列表 list的定義:
一個連續的,排列有序的數列,由若干個元素組成,元素可以是任意對象(數字、字符串,對象,列表),元素可以使用索引查找,線性的數據結構。使用[ ]表示。列表是可變的,是可迭代對象。
列表具體定義
l=[ ] (空列表) l=list(iterable)
列表不能一開始就定義大小。指定大小會報類型錯誤(TypeError)。
2:列表,鏈表的差異:
列表list(使用index查找,找的代價小,插入比較慢),
鏈表 (查找的比較慢,插入比較方便),
具體花費的時間需要根據具體的使用情況權衡。
3:queue ,stack的差異
queue(隊列:先進先出的隊列)
stack(棧:先進后出)
4:列表的索引訪問
索引,也叫下標
正索引:從左至右,從0開始,為列表中每一個元素編號
負索引:從右至左,從-1開始
正負索引不可以超界,否則引起IndexError
約定:可以認為列表是從左至右排列,左邊是頭部,右邊是尾部,左邊是下界,右邊是上界
列表通過索引訪問。 list[index],index就是索引,使用中括號訪問
5:列表的查詢方法
index(value,[start,[stop]])通過值查找的。沒有查到就拋ValueError , 靠值遍歷的方式
通過值value,從指定的范圍內查找列表內的元素是否匹配
匹配第一個就立即返回索引,匹配不到,就拋出異常ValueError
count(value) 靠值遍歷的方式 沒有查找到數值不拋出異常。返回列表中匹配value的次數
時間復雜度 遍歷查找的都是O(n),index和count方法都是O(n)
len () 統計列表的長度方法
6:列表元素的修改方法
list[index]=value 索引不要超界
列表增加、插入元素
append(object)--->None 列表尾部追加元素,返回None
返回None就意味著沒有新的列表產生,直接修改列表。 時間復雜度是O(1)
insert(index,object)----->None 在指定的索引index處插入元素object
返回None就意味著沒有新的列表產生,直接修改列表。時間復雜度是O(n)
注意(使用insert()時): 超越上界,尾部追加。 超越下屆,頭部追加
extend(iteratable)--->none 將可迭代對象的元素追加進來,返回None 。直接修改列表。
時間復雜度是O(1)
+----->list 創建一個沒有引用的新對象,之后會被垃圾回收
鏈接操作,將兩個列表連接起來,原列表不會改變,會產生新的列表
本質上是調用——add_()方法
*------>list 重復操作,將本列表元素重復n次,放回新的列表 列表重復,如果設置數列里面也是數列,會遇到修改一 個,其他重復的元素也跟著修改。
7:列表的刪除元素
remove(value)--->None 從左至右查找第一個匹配的value的值,移除該元素,返回None
時間復雜度是O(n) ,需要一個一個查找
pop([index])-->item
不指定索引index,就從列表尾部彈出一個元素,這種情況時間復雜度為:O(1)
指定索引index,就從索引出彈出一個元素,索引超界會拋出IndexError錯誤
clear()---None 清除列表所有元素,剩下一個空列表
8:列表的其他操作
reverse()-->None reverse將列表的元素反轉,放回None 直接修改列表。
sort(key=None,reverse=false)-->None
對列表元素進行排序,直接修改列表,默認升序。reverse為True,反轉,降序
key一個函數,指定Key如何排序 lst.sort(key=functionname)
in 判斷一個列表是否屬于另一個列表
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。