python - 执行速度优化功能
问题描述
我是 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)
解决方案
是的,正如@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)
推荐阅读
- javascript - 如何让 textarea 的光标在拖放时移动到突出显示的文本的末尾?
- android - 我应该总是对所有事情都使用 ConstraintLayout 吗?
- dns - 如何使用 dig 进行相对路径 DNS 查询?
- android - 我听说“理想情况下,每个视图都应该在活动中定义”,是真的吗?
- uwp - ItemsRepeater 在使用转换器时抛出 System.InvalidCastException
- deep-learning - 为什么损失会用 swa 方法跳到 nan?
- c# - 当我查看它们时,数百个错误都消失了?
- python - 将 pandas 数据框列中的列表中的 dict 分离到不同的数据框列中
- javascript - 如何重构代码以避免全局范围?
- python-3.x - TypeError:'str' 对象不可调用 uuid 值-Python 3