help understanding class or function
Gabriel Genellina
gagsl-py2 at yahoo.com.ar
Thu Mar 5 19:13:43 EST 2009
En Thu, 05 Mar 2009 14:43:12 -0200, Vincent Davis
<vincent at 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
More information about the Python-list
mailing list