在 DEAP example (Python框架)有一段代码:
# Evaluate the entire population
fitnesses = list(map(toolbox.evaluate, pop))
for ind, fit in zip(pop, fitnesses):
ind.fitness.values = fit
为什么他们使用map
,然后使用for
?为什么不只是:
for ind in pop:
ind.fitness.values = toolbox.evaluate(ind)
最佳答案
我是 DEAP 开发者之一。
我们使用映射,以便通过用并行映射替换映射来轻松并行化评估。
在后面的示例中,我们使用一个工具箱,其中注册了一个 map (__buitins__.map
),可以用 multiprocessing.Pool.map
或 替换>scoop.futures.map
。如何分发评估可以查看文档here
关于python - 映射,然后迭代 - 为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18404215/