[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