3个提升Python运行速度的方法,很实用
今天总结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运行速度的方法,很实用相关推荐
- 如何提高python的运行效率_几个提升Python运行效率的方法之间的对比
在我看来,python社区分为了三个流派,分别是python 2.x组织,3.x组织和PyPy组织.这个分类基本上可以归根于类库的兼容性和速度.这篇文章将聚焦于一些通用代码的优化技巧以及编译成C后性能 ...
- 计算机在表格底部插入一空行怎么弄,简单高效的Excel技巧,表格隔行插入空行,这两种方法很实用...
在对Excel表格进行操作的时候,我们有时候会碰到一个难题,那就是怎么在原表格中,隔行插入空行,以便于我们补充新增新的数据. 简单高效的Excel技巧,表格隔行插入空行,这两种方法很实用 如上图所示, ...
- 提升Python学习效率的方法
Python是一门目前很流行的编程语言,因其语法简洁.功能强大.上手简单,目前已广泛应用于人工智能.云计算开发.大数据开发.数据分析.科学运算.网站开发.爬虫.自动化运维.自动化测试以及游戏开发等领域 ...
- python以运行效率高著称吗_几个提升Python运行效率的方法之间的对比
在我看来,python社区分为了三个流派,分别是python 2.x组织,3.x组织和PyPy组织.这个分类基本上可以归根于类库的兼容性和速度.这篇文章将聚焦于一些通用代码的优化技巧以及编译成C后性能 ...
- 提升SOLIDWORKS运行速度的方法
1.针对有集成显卡的用户,选中SOLIDWORKS图标→右键→用图形处理器运行→集成图形(或-更改默认图形处理器-中单独对软件重新设置),这个能够帮助一部分人解决卡顿问题. 2.打开SOLIDWORK ...
- 在家如何快速学习编程,这 6 个方法很实用
"大部分好的程序员编程并不是为了钱或名望,而只是因为纯粹的乐趣." - Linus Torvalds 最近,受疫情影响,不少同学只能呆在家学习编程.但也有部分同学反映,相比学校和公 ...
- 用浏览器读取图片上的文字信息,这个方法很实用
又到多御安全浏览器安卓版更新的时候了,这一次的android版 1.8.0 更新,带来的更新内容比较少,但依然有值得我们关注的功能.此次更新中,多御新增了长按图片文字读取功能,有了这个功能就不用一个个 ...
- 10个关于文件操作的小功能(Python),都很实用~
1 优雅的获取文件后缀名 import os file_ext = os.path.splitext('./data/py/test.py') front,ext = file_ext In [5]: ...
- vsflexgrid 最后一行 求和_合并单元格求和、计数、平均值,这个方法很实用
我的第263篇财务excel原创 你好,我是世杰老师,很高兴在这里和你遇见. 合并单元格是领导最喜欢的一种表格呈现方式,虽然简单明了,但是在统计的时候都十分地不方便,今天世杰老师给大家讲一下如何快速按 ...
最新文章
- Java实用教程笔记 Java多线程机制
- SAP Spartacus 读取payment detail数据的API
- 【线性查询之间存在相关性误差】差分隐私系统学习记录(七)
- SESSIONS.ser 的问题
- 20.校准相机——SVD技巧第1部分,SVD技巧第2部分,SVD技巧第3部分_2
- 怎么更改wifi频段_科普 | 你了解WiFi信号扩展器吗?
- word目录怎么跳转到相应页码_Word目录不会做?请看完整操作步骤
- android 内存泄漏总结
- 无敌打印(适用各种浏览器自带打印功能)
- java实现一个电子书下载系统
- WPS无法用backspace删除空白页怎么办?
- 交换两个数组的内容555555555
- JS——正则校验域名
- echarts 引入百度地图
- MATLAB数字图像处理小系统 【带GUI界面,源码实现】
- 初探富文本之编辑器引擎
- yocto运行时依赖规则
- 亚马逊又为卖家解锁新功能,最高提升10%转化的它不可忽略!
- 产品经理必懂的技术那点事儿(中)
- asp.net ajax1.0基础回顾(三):UpdatePanel的基本用法
热门文章
- 链表中环的入口结点 python_【Github 5K星】BAT头条滴滴小米等笔试面经+深度学习/算法/NLP资源汇总!...
- 百度seo排名规则_SEO:百度搜索引擎排名规则都有哪些?
- mysql 设置时区_MySQL实战干货 | 如何处理由时区设置引发的 SQL 执行“卡顿”?...
- 二级高级应用计算机考试环境,1.2 上机考试环境免费阅读_全国计算机等级考试无纸化真考题库二级MS Office高级应用免费全文_百度阅读...
- springboot 日志_Springboot与日志
- jframe运行和预览大小不一样_在泉州楼市中12个热门置业板块中,购房竞争压力大小各不一样...
- access2007连接oracle数据库(通过ODBC)
- usr bin java快捷方式_/ usr / bin / sudo必须由uid 0拥有并设置setuid位
- 第2节 mapreduce深入学习:12、reducetask运行机制(多看几遍)
- jquery中方法扩展 ($.fn $.extend) 学习笔记