分享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
  • asp之家 网络编程 m.aspxhome.com