On Wed, 16 Mar 2016 11:47:31 +0100, Peter Otten wrote: > Sven R. Kunze wrote: > >> Hi, >> >> a colleague of mine (I write this mail because I am on the list) has >> the following issue: >> >> >> for x in my_iterable: >> # do >> empty: >> # do something else >> >> >> What's the most Pythonic way of doing this? > > What would you expect? > >>>> class Empty(Exception): pass > ... >>>> def check_empty(items): > ... items = iter(items) > ... try: > ... yield next(items) > ... except StopIteration: > ... raise Empty ... yield from items ... >>>> try: > ... for item in check_empty("abc"): print(item) > ... except Empty: print("oops") > ... > a > b > c >>>> try: > ... for item in check_empty(""): print(item) > ... except Empty: print("oops") > ... > oops > > I'm kidding, of course. Keep it simple and use a flag like you would in > any other language: > > empty = True: > for item in items: > empty = False ... > if empty: > ...
or even use the loop variable as the flag item=None for item in items: #do stuff if ex is None: #do something else -- Love means never having to say you're sorry. -- Eric Segal, "Love Story" That's the most ridiculous thing I've ever heard. -- Ryan O'Neill, "What's Up Doc?" -- https://mail.python.org/mailman/listinfo/python-list