Here's what I was doing, and worked when i switched to the generator:
def stop(): … raise StopIteration()
list(((x if x < 5 else stop()) for x in range(10))) [0, 1, 2, 3, 4]
Shane Green
www.umbrellacode.com
408-692-4666 | shane@umbrellacode.com
On Jan 29, 2013, at 6:36 AM, Wolfgang Maier
Are you trying to say you entered that code and it ran? I would be very surprised: if you could simply 'raise StopIteration' within the 'if' clause then there would be no point to the discussion. But as it is, your StopIteration should not be caught by the 'for', but will be raised directly. Did you try running it?
Sorry, I missed your enclosing list(), which explains things of course. Cheers, Wolfgang
_______________________________________________ Python-ideas mailing list Python-ideas@python.org http://mail.python.org/mailman/listinfo/python-ideas