En Thu, 05 Mar 2009 14:43:12 -0200, Vincent Davis <vinc...@vincentdavis.net> escribió:

If I have a list and I what to make changes to it.a = [1,2,3,4,5,6,7,8,9]
and maybe I want to drop the odd and double the  even numbers and I will
need to do this repeatedly.
How is this best done? That is as a function or class. All I know how to do
is

def doubleeven(alist):
    blist = [2*x for x in a if x % 2 ==0]
   return blist

then when I am using it I do this

a = doubleeven(a)
I what to keep it named "a"

I am not sure if this is the best way in terms of format or structure. Is
there a better way.

I don't grasp what you're worried about... Your function does exactly what you have specified above, so it's correct. Don't you like the fact that it returns a *new* list instead of modifying the original one in-place? You may use:

a[:] = doubleeven(a)

Or rewrite the function using a while loop (to avoid having two lists alive at the same time), but I would not bother unless there are strong reasons (the lists is really huge, or there is very few memory available).

--
Gabriel Genellina

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to