我正在寻找最聪明的方法,使用相同的参数运行10次相同的函数,并存储结果。
简单的解决办法是:
def f(a):
// do stuff
return a
results = []
same_argument = 10
for x in range(0,10):
results.append(f(same_argument))这是可行的,但是我相信如果这10个进程可以同时运行的话,这个过程将花费更少的时间。
function似乎可以完成这项工作,但它只需要一个可迭代的参数。我可以给它一个10倍于相同论点的列表,但是它感觉不对。
还有其他内置的方式来解决我的问题吗?
发布于 2015-02-09 23:44:06
我只需要使用一个pool,并传递相同的参数很多次.
n_times = 10
results = pool.map(f, [same_argument] * n_times)它是快速的,它很容易知道是怎么回事。唯一的缺点是它需要一个小小的中间存储--与你保存实际结果所需的存储量相比,这很可能是微不足道的。
当然,如果您真的担心存储开销,您应该能够使用itertools.repeat(same_argument, n_times).
发布于 2015-02-10 15:01:23
清单理解呢?
results = [f(same_argument) for _ in xrange(10)]其中,"_“用于生成语法验证工具(如pylint),不抱怨未使用的变量。
https://stackoverflow.com/questions/28421605
复制相似问题