首页 > 解决方案 > 执行速度优化功能

问题描述

我是 Python 新手,我正在尝试针对大量数据优化此代码。但是我正在努力寻找优化的方法。如果我按原样运行它,大约需要 4 分钟。我知道它与循环以及 max 和 randint 函数有关。我尝试使用 random.random ,因为我读得更快,但我得到了几乎相同的结果。你能想出一个更好的方法,这样就不需要那么长时间了吗?

from random import randint

def func(iters, n):
    # Function to add max random numbers to a list.
    l = [0]
    for i in range(iters):
        r = randint(0, n)
        max_l = max(l)

        if r > max_l:
            l.append(r)
        else:
            l.append(max_l + 1)

    return l

func(100000, 50)

标签: pythonpython-3.xoptimization

解决方案


是的,正如@quamrana 提到的,列表的最后一个索引包含最大值,所以只需访问而不是每次都计算它。

from random import randint

def func(iters, n):

#Function to add max random numbers to a list.

    l = [0]
    for i in range(iters):
        r = randint(0, n)
        max_l = l[-1]


        if r > max_l:
            l.append(r)
        else:
            l.append(max_l + 1)

    return l

func(100000, 50)

推荐阅读