[prev in list] [next in list] [prev in thread] [next in thread] 

List:       python-list
Subject:    Re: map/filter/reduce/lambda opinions and background
From:       "Terry Reedy" <tjreedy () udel ! edu>
Date:       2005-07-07 20:36:29
Message-ID: dak3oe$8hn$1 () sea ! gmane ! org
[Download RAW message or body]

"Paweł Sakowski" <pawel@sakowski.pl> wrote in message 
news:dajghf$dit$1@inews.gazeta.pl...
Tom Anderson wrote:
> def flatten(ll):
>  return reduce(lambda a, l: a.extend(l), ll, [])
>
> How would one do that as a list comp, by the way? I'm really not very 
> good
> with them yet.

Not really a list-comprehension based solution, but I think what you want 
is

>>> ll=[[1,2],[3,4,5],[6]]
>>> sum(ll,[])
[1, 2, 3, 4, 5, 6]

Unless sum knows to typecheck input items and special-case lists and use 
list.extend rather than list+list, this turns an O(n) operation into an 
O(n**2) operation.  Sum is meant for numbers.

Terry J. Reedy





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

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic