文章作者:Tyan
博客:noahsnail.com | CSDN | 简书
Python使用非常方便、灵活,因此很受欢迎。但正因为如此,导致实现同一功能时,Python代码有很多写法,但不同的写法有不同的性能。因此写Python代码要有良好的习惯,多写高性能的代码。作者原来平常写Python代码也很随意,直到某天处理大量数据时半天看不到结果,究其原因,是Python代码的性能问题导致的。
1. 列表解析与列表重建
1 | #!/usr/bin/env python |
运行结果:
1 | read file time: 0.0318450927734 |
结论:本次测试中,列表解析时间是for循环时间的2/3
。
2. 字符串拼接
1 | #!/usr/bin/env python |
运行结果:
1 | string concat time: 0.0814869403839 |
结论:本次测试中,join
函数拼接字符串比+=
拼接字符串快6倍多
。
3. range与xrange
- range
python中range会直接生成一个list对象。
- xrange
用法与range完全相同,所不同的是生成的不是一个数组,而是一个生成器,它的类型为xrange
。在生成非常大的数字序列时,xrange不会马上开辟很大的一块内存空间。如果不是需要返回列表,则尽可能使用xrange
。
测试代码:
1 | #!/usr/bin/env python |
测试结果:
1 | range time: 0.0680990219116 |
结论:本次测试中,xrange
比range
快一倍多。