Dynamic or not?

rishiyoor at gmail.com rishiyoor at gmail.com
Thu Dec 13 11:38:08 EST 2007


On Dec 13, 10:24 am, Marc 'BlackJack' Rintsch <bj_... at gmx.net> wrote:
> On Thu, 13 Dec 2007 06:51:23 -0800, rishiyoor wrote:
> > When you say python automatically allocates memory, what would you do
> > if you don't know the size of the list of, say for example, the
> > nearest pairs between the two groups. I would probably iterate over
> > all the pairs and create a new list. I did a similar operation in
> > another program, but I had to initialize the list (statically) with x
> > = [0]*50 before I could use it in the for loop.
>
> Only if you used an index instead of starting with an empty list and
> appending values to it.  Or in simple cases a list comprehension might
> replace a ``for`` loop.
>
> "Bad" and "unpythonic" example:
>
> new = [0] * len(old)
> for i in xrange(len(old)):
>     new[i] = do_something(old[i])
>
> Better written as:
>
> new = list()
> for item in old:
>     new.append(do_something(item))
>
> Or as list comprehension:
>
> new = [do_something(item) for item in old]
>
> Or:
>
> new = map(do_something, old)
>
> Ciao,
>         Marc 'BlackJack' Rintsch

Thanks Marc.



More information about the Python-list mailing list