今天总结3个提升Python运行速度的方法,只从代码本身考虑,提升运行速度并不会从编写C 扩展的代码、基于JIT的编译器技术考虑。

关于代码执行效率的第一个方法是减少频繁的方法访问,尤其是在多层循环内层、且循环次数较多的操作,差距尤为明显。

真是模块内全局变量

import mathdef compute_sqrt(nums):
result = []
for n in nums:

假如nums长度很大

1. math.sqrt 会被频繁访问

2. result.append 也会被频繁访问

result.append(math.sqrt(n))
return result

看到在for循环里面,涉及2个频繁的访问:

math.sqrt 会被频繁访问
result.append 也会被频繁访问

因此第一步做如下更改:直接导入sqrt,而不是导入整个模块后再去引用sqrt

直接导入sqrt,而不是导入整个模块后再去引用sqrtfrom math import sqrtdef compute_sqrt(nums):

result = []
for n in nums:

假如nums长度很大

1. math.sqrt 会被频繁访问

2. result.append 也会被频繁访问

result.append(sqrt(n))
return result

然后再修改result.append,不用频繁访问append,使用标签apd指向它就行了:

直接导入sqrt,而不是导入整个模块后再去引用sqrtfrom math import sqrt

def compute_sqrt(nums):
result = []
apd = result.append
for n in nums:

假如nums长度很大

1. math.sqrt 会被频繁访问

2. result.append 也会被频繁访问

apd(sqrt(n))
return result

第二个方法:查找局部变量的效率是最高的!!!对于频繁访问的变量应尽可能是局部变量,消除不必要的全局变量访问。所以对于上面代码,sqrt还是模块级别的全局变量,所以修改为:

def compute_sqrt(nums):

调整sqrt为局部变量

from math import sqrt
result = []
apd = result.append
for n in nums:

假如nums长度很大

1. math.sqrt 会被频繁访问

2. result.append 也会被频繁访问

apd(sqrt(n))
return result

第三个方法:不要做一些不必要的属性包装。比如@property必要时再用,能不用时就别用。如下对于属性y做@property装饰没有任何意义!只有在y有特定取值,比如只能取大于0的非负实数时再用此装饰才有意义。
小编整理了一套2021最新的Python学习资料,需要的按以下步骤领取!

1、评论

2、转发

3、关注

**4、需要Python学习资料可以76 年 24 月 59号考试510分 去掉文字加我的伪 ,资料免费赠予大家!(书籍太多,我就随便发一点咯!)**​

class A:
def init(self, x, y):
self.x = x
self.y = y
@property
def y(self):
return self._y
@y.setter
def y(self, value):
self._y = value

因此修改为下面这样,删去多余的@property包装

class A: def init(self, x, y): self.x = x self.y = y

3个提升Python运行速度的方法,很实用相关推荐

  1. 如何提高python的运行效率_几个提升Python运行效率的方法之间的对比

    在我看来,python社区分为了三个流派,分别是python 2.x组织,3.x组织和PyPy组织.这个分类基本上可以归根于类库的兼容性和速度.这篇文章将聚焦于一些通用代码的优化技巧以及编译成C后性能 ...

  2. 计算机在表格底部插入一空行怎么弄,简单高效的Excel技巧,表格隔行插入空行,这两种方法很实用...

    在对Excel表格进行操作的时候,我们有时候会碰到一个难题,那就是怎么在原表格中,隔行插入空行,以便于我们补充新增新的数据. 简单高效的Excel技巧,表格隔行插入空行,这两种方法很实用 如上图所示, ...

  3. 提升Python学习效率的方法

    Python是一门目前很流行的编程语言,因其语法简洁.功能强大.上手简单,目前已广泛应用于人工智能.云计算开发.大数据开发.数据分析.科学运算.网站开发.爬虫.自动化运维.自动化测试以及游戏开发等领域 ...

  4. python以运行效率高著称吗_几个提升Python运行效率的方法之间的对比

    在我看来,python社区分为了三个流派,分别是python 2.x组织,3.x组织和PyPy组织.这个分类基本上可以归根于类库的兼容性和速度.这篇文章将聚焦于一些通用代码的优化技巧以及编译成C后性能 ...

  5. 提升SOLIDWORKS运行速度的方法

    1.针对有集成显卡的用户,选中SOLIDWORKS图标→右键→用图形处理器运行→集成图形(或-更改默认图形处理器-中单独对软件重新设置),这个能够帮助一部分人解决卡顿问题. 2.打开SOLIDWORK ...

  6. 在家如何快速学习编程,这 6 个方法很实用

    "大部分好的程序员编程并不是为了钱或名望,而只是因为纯粹的乐趣." - Linus Torvalds 最近,受疫情影响,不少同学只能呆在家学习编程.但也有部分同学反映,相比学校和公 ...

  7. 用浏览器读取图片上的文字信息,这个方法很实用

    又到多御安全浏览器安卓版更新的时候了,这一次的android版 1.8.0 更新,带来的更新内容比较少,但依然有值得我们关注的功能.此次更新中,多御新增了长按图片文字读取功能,有了这个功能就不用一个个 ...

  8. 10个关于文件操作的小功能(Python),都很实用~

    1 优雅的获取文件后缀名 import os file_ext = os.path.splitext('./data/py/test.py') front,ext = file_ext In [5]: ...

  9. vsflexgrid 最后一行 求和_合并单元格求和、计数、平均值,这个方法很实用

    我的第263篇财务excel原创 你好,我是世杰老师,很高兴在这里和你遇见. 合并单元格是领导最喜欢的一种表格呈现方式,虽然简单明了,但是在统计的时候都十分地不方便,今天世杰老师给大家讲一下如何快速按 ...

最新文章

  1. Java实用教程笔记 Java多线程机制
  2. SAP Spartacus 读取payment detail数据的API
  3. 【线性查询之间存在相关性误差】差分隐私系统学习记录(七)
  4. SESSIONS.ser 的问题
  5. 20.校准相机——SVD技巧第1部分,SVD技巧第2部分,SVD技巧第3部分_2
  6. 怎么更改wifi频段_科普 | 你了解WiFi信号扩展器吗?
  7. word目录怎么跳转到相应页码_Word目录不会做?请看完整操作步骤
  8. android 内存泄漏总结
  9. 无敌打印(适用各种浏览器自带打印功能)
  10. java实现一个电子书下载系统
  11. WPS无法用backspace删除空白页怎么办?
  12. 交换两个数组的内容555555555
  13. JS——正则校验域名
  14. echarts 引入百度地图
  15. MATLAB数字图像处理小系统 【带GUI界面,源码实现】
  16. 初探富文本之编辑器引擎
  17. yocto运行时依赖规则
  18. 亚马逊又为卖家解锁新功能,最高提升10%转化的它不可忽略!
  19. 产品经理必懂的技术那点事儿(中)
  20. asp.net ajax1.0基础回顾(三):UpdatePanel的基本用法

热门文章

  1. 链表中环的入口结点 python_【Github 5K星】BAT头条滴滴小米等笔试面经+深度学习/算法/NLP资源汇总!...
  2. 百度seo排名规则_SEO:百度搜索引擎排名规则都有哪些?
  3. mysql 设置时区_MySQL实战干货 | 如何处理由时区设置引发的 SQL 执行“卡顿”?...
  4. 二级高级应用计算机考试环境,1.2 上机考试环境免费阅读_全国计算机等级考试无纸化真考题库二级MS Office高级应用免费全文_百度阅读...
  5. springboot 日志_Springboot与日志
  6. jframe运行和预览大小不一样_在泉州楼市中12个热门置业板块中,购房竞争压力大小各不一样...
  7. access2007连接oracle数据库(通过ODBC)
  8. usr bin java快捷方式_/ usr / bin / sudo必须由uid 0拥有并设置setuid位
  9. 第2节 mapreduce深入学习:12、reducetask运行机制(多看几遍)
  10. jquery中方法扩展 ($.fn $.extend) 学习笔记