一、計算代碼運行時間
-
import datetimestart = datetime.datetime.now()stop = datetime.datetime.now()delta = (stop – start).total_seconds()
二、內存管理
-
編程中一般無須關心變量的存亡,也不用關心內存的管理
-
Python使用引用計數記錄所有對象的引用數
當對象引用數變為0,它就可以被垃圾回收GC
計數增加:賦值給其它變量就增加引用計數,例如 x=3;y=x
計數減少:函數運行結束時,局部變量就會就會被自動銷毀,對象引用計數減少? ? ? ? ? ? ? ? ? ? 變量被賦值給其它對象,例如 x=3;y=x;x=4
三、數字處理函數
-
// :類似于 floor( ),整除且向下取整
>>> 7//2? –> 3
>>> 7//-2 –> -4
>>> -7//2? –> -4 -
開方
pow(x,y) = x**y? 比如可以開三次方
math.sqrt( )? ?開平方
四、list
-
list:是可變的,任何位置都可以增加或刪除數據
queue:要么從前面,要么從后面增加或刪除數據
鏈表:手拉手模型,而且在內存中存放的位置是散落的,但是串在一起的,適用于頻繁的插入或者取走數據
stack:只能后進先出,摞盤子模型,適用于函數 -
index(value,[start,[stop]])
通過值value,從指定區間查找列表內的元素是否匹配
匹配第一個就立即返回索引
匹配不到,拋出異常ValueError
時間復雜度是 O(n)
lst.index(5)? ? ? –>? ?3 -
count(value)
返回列表中匹配value的次數
隨著列表數據規模的增大,效率會逐漸下降
時間復雜度是 O(n)
lst.count(1)? ? –>? ?0 -
append(object)? –> None
返回None就意味著沒有新的列表產生,就地修改
追加的時候,列表只占一個索引位
時間復雜度是O(1) -
extend(iteratable)? –> None
將可迭代對象的元素追加進來,就地修改
追加的時候,是將列表中的每個元素都追加進來 -
+? –> list
實際上是生成了一個新的列表,存這兩個列表的和,只能用在兩個列表相加
原列表不變
本質上調用的是 __add__() 方法 -
+=
效果與 extend() 一樣 -
*? –>list
重復操作,將本列表元素重復 n 次,返回新列表 -
insert(index,object)? –> None
在指定的索引 index 處插入元素 object
返回None就意味著沒有新的列表產生,就地修改
如果索引 index 超越上界,尾部追加
如果索引 index 超越下界,頭部追加
時間復雜度是O(n) -
remove(value)? –> None
從左至右查找第一個匹配 value 的值,移除該元素,返回 None
就地修改
時間復雜度是O(n) -
pop([index])? –> item
不指定索引 index,就從列表尾部彈出一個元素,時間復雜度是O(1)
指定索引 index,就從索引處彈出一個元素,索引超界拋出 IndexError 錯誤,時間復雜度是O(1),但是效率不行 -
clear()? ?–> None
清除列表所有元素,剩下一個空列表 -
reverse() –> None
將列表元素反轉,返回 None,就地修改
注意和系統中的內置函數 reversed 不一樣,直接用 reversed(lst) 返回的是一個內存中存放的值 -
sort(key=None,reverse=False)? –> None
將列表元素進行排序,就地修改,默認升序
reverse 為 True,反轉降序
key 一個函數,指定 key 如何排序? lst.sort(key=functionname)
和內建函數 sorted 有相似之處
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/93090