众所周知,程序的性能好坏影响着用户体验。因此性能是留住用户很重要的一环。Python 语言虽然能作不少事情,可是有一个不足之处,那就是执行效率和性能不够理想。算法
所以,更有必要进行必定的代码优化来提升 Python 程序的执行效率。本文章主要是输出本身在 Python 程序优化的经验。函数
推荐下我本身建立的Python学习交流群960410445,这是Python学习交流的地方,无论你是小白仍是大牛,小编都欢迎,不按期分享干货,包括我整理的一份适合零基础学习Python的资料和入门教程。性能
Python 的标准库中有不少内置函数,它们的运行效率都很高。由于不少标准库是使用 C 语言编写的。Pyhton 的内置函数有:学习
运算符 "+" 不只能用于加法运算,还能作字符串链接。可是这种效率不是很高。在 Python 中,字符串变量在内存中是不可变的。若是使用 "+" 拼接字符串,内存会先建立一个新字符串,而后将两个旧字符串拼接,再复制到新字符串。推荐使用如下方法:优化
使用 "%" 运算符链接翻译
这种方式有点像 C 语言中 printf 函数的功能,使用 "%s" 来表示字符串类型参数,再用 "%" 链接一个字符串和一组变量。3d
使用 format() 格式化链接orm
这种格式化字符串函数是 Python 特有的,属于高级用法。由于它威力强大,不只支持多种参数类型,还支持对数字格式化。cdn
上述代码使用隐式的位置参数,format() 还能显式指定参数所对应变量的位置。blog
使用 join() 方式
这种算是技巧性办法。join() 方法一般是用于链接列表或元组中的元素。
generator 翻译成中文是生成器。生成器也是一种特殊迭代器。它实际上是生成器函数返回生成器的迭代。生成器算是 Python 很是棒的特性。它的出现能帮助大大节省些内存空间。
假如咱们要生成从 1 到 10 这 10 个数字,采用列表的方式定义,会占用 10 个地址空间。采用生成器,只会占用一个地址空间。由于生成器并无把全部的值存在内存中,而是在运行时生成值。因此生成器只能访问一次。
虽然使用While True和while 1都能实现死循环,可是while 1是单步运算,因此效率会高一点。
交换将两个变量的值,咱们会立马想到应用一个第三方变量的方法。
Python 素有优雅的名声,因此有一个更加优雅又快速的方法,那就是多重赋值。
Python 标准库中有个 bisect 模块是内置模块,它实现了一个算法用于插入元素到有序列表。在一些状况下,这比反复排序列表或构造一个大的列表再排序的效率更高。
07尽可能使用局部变量
Python 检索局部变量比检索全局变量快。所以, 尽可能少用 "global" 关键字。