Is there a better way of doing this?

mattia gervaz at
Fri Mar 6 11:19:22 CET 2009

Hi, I'm new to python, and as the title says, can I improve this snippet 
(readability, speed, tricks):

def get_fitness_and_population(fitness, population):
    return [(fitness(x), x) for x in population]

def selection(fitness, population):
    Select the parent chromosomes from a population according to their
    fitness (the better fitness, the bigger chance to be selected)
    selected_population = []
    fap = get_fitness_and_population(fitness, population)
    pop_len = len(population)
    # elitism (it prevents a loss of the best found solution)
    # take the only 2 best solutions
    elite_population = sorted(fap)
    selected_population += [elite_population[pop_len-1][1]] + 
    # go on with the rest of the elements
    for i in range(pop_len-2):
        # do something

More information about the Python-list mailing list