在学习Python时,掌握一些技巧,可以尽量提高Python程序性能,也可以避免不必要的资源浪费。
1.使用局部变量
尽可能的使用局部变量代替全局变量:这样更便于维护,并且可以提高性能和节省内存。
使用局部变量替换模块名字空间中的变量,例如ls=os.linesep。一方面可以提高程序性能,局部变量查找速度更快;另一方面可用简短标识符替代冗长的模块变量,提高可读性。
2.减少函数调用次数
对象类型判断时,采用isinstance()最优,采用对象类型身份(id())次之,采用对象值(type())比较最次。
#判断变量num是否为整数类型type(num)==type(0)#调用三次函数type(num)istype(0)#身份比较isinstance(num,(int))#调用一次函数不要在重复操作的内容作为参数放到循环条件中,避免重复运算。
#每次循环都需要重新执行len(a)whileilen(a):statement#len(a)仅执行一次m=len(a)whileim:statement如需使用模块X中的某个函数或对象Y,应直接使用fromXimportY,而不是importX;X.Y。这样在使用Y时,可以减少一次查询(解释器不必首先查找到X模块,然后在X模块的字典中查找Y)。
3.采用映射替代条件查找
映射(比如dict等)的搜索速度远快于条件语句(如if等)。Python中也没有select-case语句。
#if查找ifa==1:b=10elifa==2:b=20...#dict查找,性能更优d={1:10,2:20,...}b=d[a]4.直接迭代序列元素
对序列(str、list、tuple等),直接迭代序列元素,比迭代元素的索引速度要更快。
a=[1,2,3]#迭代元素foritemina:print(item)#迭代索引foriinrange(len(a)):print(a[i])5.采用生成器表达式替代列表解析
列表解析(list