永洪社区

标题: 十个让 Python 代码飞起来的小技巧 [打印本页]

作者: 喝酸奶不舔盖    时间: 2024-7-16 11:07
标题: 十个让 Python 代码飞起来的小技巧
本帖最后由 喝酸奶不舔盖 于 2024-7-16 11:09 编辑

今天分享一些在你实际使用 Python 的时候可以用到的小技巧,它们可以让你的代码执行效率更高一些。
那么接下来就是学习 Python 的正确姿势
1, 善用表达式
比如我们需要从一组数字中筛选出所有的偶数,使用列表推导式和生成器表达式可以提高代码的效率和可读性。


2, 使用缓存
如果我们有一个计算成本较高的函数,比如计算斐波那契数列的第 n 项,那么使用 functools.lru_cache 缓存可以显著提高效率。



运行结果:
不使用缓存的结果: 102334155, 耗时: 31.831377 秒
使用 lru_cache 的结果: 102334155 成: 0.000032 秒
3, 可以用局部变量就不要用全局变量
这是因为 Python 访问局部变量比访问全局变量要快。
尽可能将变量定义在函数内部,这样可以利用 Python 的局部变量快速访问机制。


运行结果:


可以看到,使用局部变量耗时较短。
4, 使用 array 替代 list
如果你要存储的数据是同一类型的,那么可以使用 array 代替 list,这样就不用额外的去存储类型数据,减少内存。


5, 减少不必要的函数
虽然说函数可以让我们提高复用,减少代码冗余,但凡事都有个物极必反,如果过度使用不必要的函数,就会影响性能,比如:


结果如下:


6, 使用 join 而不是用 +
我们常常会使用到字符串的拼接,很多时候我们会直接使用 「+」来连接字符串,每次使用 「+」 都会创建一个新的字符串,不过这在循环或大量字符串操作时就会显得很低效了。
可以使用 join 方法,因为它在内存中只创建一次新字符串。


7,避免贪婪匹配
我们在写正则表达式的时候,对于处理匹配大量数据的时候,应该减少贪婪匹配的使用,这样做的好处是可以减少不必要的性能消耗。




可以看到,我们使用加一个 「?」,正则表达式变为非贪婪的,就可以更少的匹配字符。
8,使用 intern 节省内存
如果你使用到大量字符串时,可以使用 intern 方法,这可以在一定程度上优化重复字符串的存储。
使用 intern 驻留,相同的字符串字面量只存储一次,多处引用指向同一个内存地址,这样可以节省内存,提升比较操作的效率。


当然,有时候系统会自动帮你 intern。
9,循环里的优化
我们经常会使用到循环语句,往往会把不必要重复执行的语句放到循环里面,这样就有点浪费了:


还有一些内置的函数如 map(), filter(), sum() 等,也可以使用它们来代替循环:


这比自己写的循环要来的舒服一些。



愿文来自公众号 :小帅b 学习Python的正确姿势





欢迎光临 永洪社区 (https://club.yonghongtech.com/) Powered by Discuz! X3.4