我现在已经坚持了一段时间,并且无法弄清楚如何将此功能转换为单行。我知道它也可以通过标准for循环完成,但我不想这样做。
def set_num_children(individs):
avg_fitness = calc_avg_fitness(individs)
def calculation(individ):
individ[2] = round(individ[1]/avg_fitness)
return individ
return map(calculation, individs)
答案 0 :(得分:1)
尽可能接近:
avg_fitness = calc_avg_fitness(individs)
[[x[0], x[1], round(x[1] / avg_fitness)] for x in individs]
即使我们可以对calc_avg_fitness
的调用进行内联,我们也不应该,多次计算它是没有意义的...这是低效的:
[[x[0], x[1], round(x[1] / calc_avg_fitness(individs))] for x in individs]
无论哪种方式,我们都会返回一个“个体”列表,这些列表是三元素列表,第三个列表是所需的计算。
答案 1 :(得分:0)
当然,A
将是字面翻译。也许有点清理它。