欢迎来到代码驿站!

Python代码

当前位置:首页 > 软件编程 > Python代码

分享5个python提速技巧,速度瞬间提上来了

时间:2022-08-08 08:22:04|栏目:Python代码|点击:

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()

上一篇:Python通过requests模块实现抓取王者荣耀全套皮肤

栏    目:Python代码

下一篇:使用python生成云词图实现画红楼梦词云图

本文标题:分享5个python提速技巧,速度瞬间提上来了

本文地址:http://www.codeinn.net/misctech/210246.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有