urikaluzhny wrote:

> It seems that I rather frequently need a list or iterator of the form
> [x for x in <> while <>]
> And there is no one like this.
> May be there is another short way to write it (not as a loop). Is
> there?
> Thanks

I usually have the same problem and i came up with an solution like that:

from operator import ne
def test(iterable, value, op=ne):
    _n = iter(iterable).next
    while True:
        _x = _n()
        if op(_x, value):
            yield _x
        else:
            raise StopIteration

l = range(6)
print [x for x in test(l, 4)]

[EMAIL PROTECTED]:~/tmp> python test18.py
[0, 1, 2, 3]

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

Reply via email to