I actually like the proposal...
If the argument to remove map, lambda and filter can be that list comprehension is more "readable", then why can't this one also use it?

Which reminds me this discussion: http://awkly.org/archive/can-python-take-advantage-of-mapreduce/

Cheers!

Hugo

On 8/6/06, Slawomir Nowaczyk <[EMAIL PROTECTED]> wrote:
On Sun, 06 Aug 2006 18:59:39 +0000 (GMT)
Duncan Booth < [EMAIL PROTECTED]> wrote:

#> >> > I suggest a new extension of the list comprehension syntax:
#> >> >
#> >> > [x for x in xs while cond(x)]
#> >> >
#> >> > which would be equivalent to
#> >> >
#> >> > list(itertools.takewhile(cond, xs))
#> >>
#> >> What would this syntax offer that:
#> >>
#> >>    [x for x in takewhile(cond, xs)]
#> >>
#> >> doesn't currently offer?
#> >
#> > The same thing that [f(x) for x in xs] offers that map(f, xs) doesn't,
#> > and the same thing that [x for x in xs if f(x)] offers that filter(f,
#> > xs) doesn't. It's more "pythonic". You can use an _expression_ for cond
#> > instead of a lambda.
#> >
#> No, the list comprehension lets you write an _expression_ directly
#> avoiding a function call, and it also allows you to add in a
#> condition which can be used to filer the sequence.

I am not sure if I understand you correctly, but... Does it?

>>> a = [0,1,2,3,7,8,9]
>>> [x for x in takewhile(lambda x: x in a, range(10))]
[0, 1, 2, 3]
>>> [x for x in takewhile(x in a, range(10))]
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
TypeError: 'bool' object is not callable

Did I miss something? Notice that using "if" gives different result:

>>> [x for x in range(10) if x in a]
[0, 1, 2, 3, 7, 8, 9]

#> Your proposal adds nothing.

Well, I am not sure how useful the proposal really is, but it seems to
add *something* if it would allow for things like:
[x for x in range(10) while x in a]

--
Best wishes,
   Slawomir Nowaczyk
     ( [EMAIL PROTECTED] )

Women who seek to be equal to men lack ambition.

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



--
GPG Fingerprint: B0D7 1249 447D F5BB 22C5  5B9B 078C 2615 504B 7B85
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to