From 953d34f74b07b5af28d05ef63b0ae68698dd3766 Mon Sep 17 00:00:00 2001 From: SimpleArt <71458112+SimpleArt@users.noreply.github.com> Date: Sun, 22 Nov 2020 15:44:29 -0500 Subject: [PATCH] Making use of casting to list --- src/crossover/crossover_methods.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/crossover/crossover_methods.py b/src/crossover/crossover_methods.py index e0dbcde..48c1cf7 100644 --- a/src/crossover/crossover_methods.py +++ b/src/crossover/crossover_methods.py @@ -4,14 +4,20 @@ def append_children_from_mating_pool(crossover_method): """Appends the new chromosomes to the next population.""" return lambda ga:\ ga.population.append_children( - [chromosome for chromosome in crossover_method(ga, ga.population.mating_pool)] + list(crossover_method(ga, ga.population.mating_pool)) ) def genes_to_chromosome(crossover_method): - """Converts a collection of genes into a chromosome.""" + """Converts a collection of genes into a chromosome. + Note: Will recreate the gene list if given gene list. + Methods used here do not construct gene lists + and use yield for efficiency. + """ return lambda ga, parent_1, parent_2:\ - ga.make_chromosome(crossover_method(ga, parent_1, parent_2)) + ga.make_chromosome( + list(crossover_method(ga, parent_1, parent_2)) + ) def values_to_genes(crossover_method):