最近在面试中遇到问python代码效率优化的问题,感觉答的很混乱,所以想来整理下python代码优化的常见手段。
1.尽量使用python内置函数
Python 的标准库中有很多内置函数,它们的运行效率都很高。因为很多标准库是使用 C 语言编写的。
2.字符串拼接使用python的标准式
python字符串的连接方式主要有:
1.使用”+”做字符串拼接
在 Python 中,字符串变量在内存中是不可变的。如果使用 “+” 拼接字符串,内存会先创建一个新字符串,然后将两个旧字符串拼接,再复制到新字符串。
2.使用%运算符连接
1
2
3
4
5 > fir = 'hello'
> sec = 'monkey'
> result = '%s, %s' % (fir, sec)
> print(result)
>
>
3.使用format格式化连接
1
2
3
4
5 > fir = 'hello'
> sec = 'monkey'
> result = '{}, {}'.format(fir, sec)
> print(result)
>
>
4.使用join的方式
这是一种技巧型方法,一般用于连接列表获元组中的字符串。
1
2
3
4 > list = ['1', '2', '3']
> result = '+'.join(list)
> print(result)
>
选用后面三种方式替代”+”字符串拼接
3.需要单次遍历的迭代的数组采用生成器替代
生成器拥有惰性计算的特点,并不不会一次性生成全部的值存储在内存中,而是在运行时生成值,因此可以大大节省内存空间。
4.使用while 1代替while True(在python2中)
由于Python2中,True/False不是关键字,因此我们可以对其进行任意的赋值,这就导致程序在每次循环时都需要对True/False的值进行检查;而对于1,则被程序进行了优化,而后不会再进行检查。
5.条件语句规范化,使用if x代替if x==True
x==True会多出一步比较操作