一、写在最前面的话
一、开发速度与运行速度之间的平衡 内置对象运行速度最快,标准库对象次之,用C或FORTRAN编写的扩展库速度也比较快,而纯Python的扩展库往往速度慢一些。
二、根据运算特点选择比较合适的数据类型可以提高程序的运行效率:
1、如果定义一些数据只是用来频繁遍历,最好优选考虑元祖或者集合。
2、如果需要频繁地测试一个元素是否在于一个序列中并不关心其位置,尽量采用字典或者集合。原因是:列表和元祖的in操作的时间复杂度是线性的,而对于集合和字典却是常数级的。在所有内置数据类型中,列表的功能最为强大,单开销也最大,运行速度最慢。
作为建议,应该优先考虑使用集合和字典,元祖次之,最后考虑列表和字符串。
三、充分利用生成器对象或者类似迭代对象的惰性计算特点,尽量避免将其转为列表、元祖等类型,这样可以减少对内存的占用,降低空间复杂的。
四、减少内循环中的无关计算,尽量往外层提取。
有很多成熟的工具可以检查Python代码的规范性,如pep8、flake8、pylint等。可以使用pip来安装pep8工具,然后使用命令
pep8test.py来检查test.py文件中Python代码的规范性。pep8 常用的可选参数有-show-source.--first.--show-pep8等。flake8 结合了pyflakes 和pep8的特点,可以检查更多的内容,优先推荐使用,使用pip install flake8可以直接安装,然后使用命令flake8 test. py检查test. py中代码的规范性。也可以使用pip安装pylint, 然后使用命令行工具pylint或者可视化工具pylint-gui来检查程序的规范性。