Just to complete François-Michel answer :
Well, if you do not need to keep track of the best individual of all
times (like the hall of fame does), you may just clear() it at each
generation...
Another way is to sort the population according to the fitness :
sortedPop = sorted(population, key=lambda ind:ind.fitness)
Yes, it involves a copy, but in general case, the overhead should be too high (compared to the sorting).
If you do not want to sort all the population, which is done in O(n log(n) ), you may also just check any individual, with a standard for loop over the population (there is no automatic mecanism in DEAP to do such a trivial thing), which will then be done in O(n).