分享5个python提速技巧,速度瞬间提上来了
作者:?小木_. 时间:2023-11-04 13:04:06
1、跳过迭代对象的开头
string_from_file = """
// Wooden: ...
// LaoLi: ...
//
// Whole: ...
Wooden LaoLi...
"""
import itertools
for line in itertools.dropwhile(lambda line: line.startswith("//"), string_from_file.split(" ")):
print(line)
2、避免数据复制
# 不推荐写法,代码耗时:6.5秒
def main():
size = 10000
for _ in range(size):
value = range(size)
value_list = [x for x in value]
square_list = [x * x for x in value_list]
main()
# 推荐写法,代码耗时:4.8秒
def main():
size = 10000
for _ in range(size):
value = range(size)
square_list = [x * x for x in value] # 避免无意义的复制
3、避免变量中间变量
# 不推荐写法,代码耗时:0.07秒
def main():
size = 1000000
for _ in range(size):
a = 3
b = 5
temp = a
a = b
b = temp
main()
# 推荐写法,代码耗时:0.06秒
def main():
size = 1000000
for _ in range(size):
a = 3
b = 5
a, b = b, a # 不借助中间变量
main()
4、循环优化
# 不推荐写法。代码耗时:6.7秒
def computeSum(size: int) -> int:
sum_ = 0
i = 0
while i < size:
sum_ += i
i += 1
return sum_
def main():
size = 10000
for _ in range(size):
sum_ = computeSum(size)
main()
# 推荐写法。代码耗时:4.3秒
def computeSum(size: int) -> int:
sum_ = 0
for i in range(size): # for 循环代替 while 循环
sum_ += i
return sum_
def main():
size = 10000
for _ in range(size):
sum_ = computeSum(size)
main()
隐式for循环代替显式for循环
# 推荐写法。代码耗时:1.7秒
def computeSum(size: int) -> int:
return sum(range(size)) # 隐式 for 循环代替显式 for 循环
def main():
size = 10000
for _ in range(size):
sum = computeSum(size)
main()
5、使用numba.jit
# 推荐写法。代码耗时:0.62秒
# numba可以将 Python 函数 JIT 编译为机器码执行,大大提高代码运行速度。
import numba
@numba.jit
def computeSum(size: float) -> int:
sum = 0
for i in range(size):
sum += i
return sum
def main():
size = 10000
for _ in range(size):
sum = computeSum(size)
main()
来源:https://jiangongfang.blog.csdn.net/article/details/122060897
标签:python,提速,技巧
0
投稿
猜你喜欢
在主机商的共享服务器上部署Django站点的方法
2021-03-20 22:41:34
归纳万恶IE6的HACK方法
2010-02-04 17:17:00
python 执行函数的九种方法
2021-03-10 18:12:08
SQL Server 数据库基本操作语句总结
2024-01-18 05:12:06
python中input()的用法及扩展
2021-07-05 08:45:57
python实现五子棋程序
2022-05-26 23:24:31
sql 版本详解 让你认识跟sql2000的区别
2024-01-26 03:58:34
Oracle数据库对象的使用详解
2024-01-28 16:38:30
特征脸(Eigenface)理论基础之PCA主成分分析法
2023-03-03 07:19:33
彻底弄懂CSS盒子模式之五(定位强化练习)
2007-05-11 16:51:00
python geopandas读取、创建shapefile文件的方法
2022-09-23 16:57:19
Python下载ts文件视频且合并的操作方法
2021-11-15 15:40:19
关于vue中的时间格式转化问题
2024-05-13 09:44:07
python dataframe向下向上填充,fillna和ffill的方法
2021-11-07 18:16:47
mysql 某字段插入随机数(插入随机数到MySQL数据库)
2024-01-26 02:29:49
ASP.NET实现图片以二进制的形式存入数据库
2024-01-25 04:32:50
如何利用Python实现一个论文降重工具
2021-02-04 08:11:28
关于ASP中的类class
2007-08-19 15:37:00
Python Flask 模型介绍和配置方法
2023-07-15 21:00:41
Python实现用手机监控远程控制电脑的方法
2021-06-22 07:57:49