List:列表有若干個元素,元素可以是任意對象,元素有順序,可以使用索引和迭代,使用線性結構,使用[ ]進行描述,在內存中的空間是連續的,每個元素在內存中的空間是一樣的………列表是可變的,列表不能一開始就定義大小,列表索引不可以超界
列表索引l.index(),從左向右搜索,發現第一個匹配的,自動返回搜索的值的索引;匹配不到,拋出異常ValueError
l.count()返回列表中匹配的值的次數
時間復雜度:index和count方法都是O(n)隨著列表數據規模的增大,而效率下降
Insert(index,object)->None,時間復雜度也是O(n),索引可超界,超越上界,尾部追加,超越下界,頭部追加: append()時間復雜度為O(1)
內存模型比方法重要
幾種序列的區別:list可以進行中間插隊,元素可進行挪動;
queue不能進行中間插隊,只能在開頭或者結尾加入或者拿出元素,也可進行索引
stack:只能后進先出(棧,類似于落盤子)
鏈表:手拉手模型
可迭代和可索引是兩個概念,是不一樣的
方法:
index(value,[start,[stop]]):通過value對列表進行查找,匹配第一個立即返回索引,匹配不到,拋出異常
list[index]=value: 對列表中的索引項元素進行修改
list.append(object): 尾部進行元素追加,返回none,沒有新列表生成,就地修改
list.insert(index,object): 在指定位置插入元素,返回值為none,沒有新列表產生,就地修改,超越上界,尾部追加,超越下界,頭部追加
list.extend(iteratable): 將可迭代對象追加進來,就地修改,返回值為none
+ : 將兩個列表鏈接起來,產生新列表,原列表不變,本質上調用add方
*: 重復操作。將本列表元素重復n次,返回新的列表
list.remove(value): 從左到右查找第一個匹配value的值,移除該元素,返回none,就地修改
list.pop([index]): 不指定索引index時從尾部彈出一個元素,指定索引index時,就從索引出彈出一個元素,索引超界拋出indexerror錯誤
l.clear():清除列表所有元素,剩下一個空列表
l.reverse():將列表元素進行反轉,返回none,就地修改
l.sort(key=functionname,reverse=False) :對列表元素進行排序,就地修改,默認升序;reverse為True,反轉,降序;key為一個函數,指定如何排序
附:
Round() —–四舍六入,五取偶(正負一樣,不用考慮正負)
Round(-2.5,-2.5001)—-(-2,-3)
Print中取整計算//按floor計算
Floor計算結果取地板
Ceil計算結果取天花板
Math.floor(2.5)—–2
Math.floor(-2.5)—–(-3)
Math.ceil(2.5)—–(3)
Math.ceil(-2.5)—-(-2)
Int(2.5)——(2)
Int(-2.5)——(-2)
二進制bin () 返回字符串
八進制oct()返回字符串
十六進制hex()返回字符串
Math.Factorial(n)整數的階乘(英語:factorial)是所有小于及等于該數的正整數的積,0的階乘為1。即:n!=1×2×3×…×n。
類型判斷:
Type’a’==str
Isinstance(123,int)返回true
Isinstance(123,(int,float,complax))返回true
Type(1+false)返回int;bool為int的子類(其中存在數值類型的隱式轉換)
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/92880