Is there a better way of doing this?
Chris Rebert
clp2 at rebertia.com
Fri Mar 6 06:43:22 EST 2009
On Fri, Mar 6, 2009 at 3:07 AM, mattia <gervaz at gmail.com> wrote:
> Great, the for statement has not to deal with fap anymore, but with
> another sequence, like this:
>
> def get_roulette_wheel(weight_value_pairs):
> roulette_wheel = []
> for weight, value in weight_value_pairs:
> roulette_wheel += [value]*weight
> return roulette_wheel
>
> def selection(fitness, population):
> ...
> rw = get_roulette_wheel(fap)
> for i in range(pop_len-2):
> selected_population += [choice(rw)]
> return selected_population
>
> I think that using [choice(rw)]*len(fap) will produce the same sequence
> repeted len(fap) times...
Revision to this new code:
def get_roulette_wheel(weight_value_pairs):
return [[value]*weight for weight, value in weight_value_pairs]
def selection(fitness, population):
...
rw = get_roulette_wheel(fap)
for i in range(len(fap)):
selected_population.append(choice(rw))
return selected_population
Cheers,
Chris
--
I have a blog:
http://blog.rebertia.com
More information about the Python-list
mailing list