我正在寻找使用相同参数运行 10 次相同函数并存储结果的最聪明的方法。
直接的解决方案是:
def f(a):
// do stuff
return a
results = []
same_argument = 10
for x in range(0,10):
results.append(f(same_argument))
这可行,但我相信如果 10 个进程可以同时运行,该进程将花费更少的时间。
The multi-process map
function看起来它可以完成这项工作,但它只需要一个可迭代的参数。我可以向它传递 10 次相同参数的列表,但感觉不对。
是否有任何其他内置方法来处理我的问题?
最佳答案
我只是使用一个pool
并多次传递相同的参数...
n_times = 10
results = pool.map(f, [same_argument] * n_times)
速度很快,而且很容易判断发生了什么。唯一的缺点是它需要一点中间存储——与保存实际结果所需的存储量相比,这可能可以忽略不计。
当然,如果你真的担心存储开销,你应该可以使用 itertools.repeat(same_argument, n_times)
...
关于python - 使用相同的参数运行相同的函数 10 次并获得结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28421605/