一、计算代码运行时间
-
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.178linux.com/93090