"Rob Richardson" <rob.richard...@rad-con.com> writes: You shouldn't top-post!
> Arnaud, > > Wouldn't your first suggestion exit after the first element in iterable? Yes, after printing that element, which is what the code I quoted did. > And would your second suggestion throw an exception after normal > processing of all elements in the interator? No. It would have the same behaviour as the first one. > RobR > > -----Original Message----- > > > I missed the start of this discussion but there are two simpler ways: > > def func(iterable): > for x in iterable: > print(x) > return > raise ValueError("... empty iterable") > > Or using 3.x's next's optional second argument: > > _nonext=object() > def func(iterable): > x = next(iter(iterable), _nonext) > if x is _nonext: > raise ValueError("... empty iterable") > print(x) > > -- > Arnaud -- Arnaud -- http://mail.python.org/mailman/listinfo/python-list