找文章 / 找答案
精选问答 更多内容

[Python独家资料] 十个让 Python 代码飞起来的小技巧

喝酸奶不舔盖青铜四 显示全部楼层 发表于 2024-7-16 11:07:57 |阅读模式 打印 上一主题 下一主题
本帖最后由 喝酸奶不舔盖 于 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的正确姿势
回复

使用道具 举报

高级模式
您需要登录后才可以回帖 登录 | 免费注册

  • 官方微信

    欢迎关注永洪服务号!收费为0,价值无限

    扫码关注
  • 新浪微博

    让每位用户轻松挖掘数据价值!

    访问新浪微博
  • 智能客服
50W

会员等你来哦

Copyright   ©2012-2024  北京永洪商智科技有限公司  (京ICP备12050607) 京公网安备110110802011451号 |《永洪社区协议》
返回顶部