[EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote: > > >>> list (x for x in xrange(20) if x<5 or iter([]).next()) > > [0, 1, 2, 3, 4] > > > > Or a bit more readably: > > >>> def stop(): raise StopIteration > > ... > > >>> list (x for x in xrange(20) if x<5 or stop()) > > [0, 1, 2, 3, 4] > > > > IOW, your "when condition(x)" (IIUIC) can be spelled "if condition(x) or > > stop()" > If it is a single loop, takewhile/dropwhile is perfectly fine but as I > mentioned in another post, it is nested and the condition needs > surrounding scope so seperate function and StopIteration doesn't work > as it breaks out of the whole thing expression.
Can you give one example where this stop() function wouldn't work and your hypothetical ``when'' would? I don't see how "it breaks out of the whole thing expression" -- it terminates ONE for-clause (and what else would your cherished ``when'' do?). Alex -- http://mail.python.org/mailman/listinfo/python-list