On Fri, Mar 6, 2009 at 3:52 AM, mattia <ger...@gmail.com> wrote: > Il Fri, 06 Mar 2009 03:43:22 -0800, Chris Rebert ha scritto: > >> On Fri, Mar 6, 2009 at 3:07 AM, mattia <ger...@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 > > Great, append is equivalent to += right? or more efficient?
Yes. .append(item) is equivalent to += [item] and is more efficient. Cheers, Chris -- I have a blog: http://blog.rebertia.com -- http://mail.python.org/mailman/listinfo/python-list