empty clause of for loops
Peter Otten
__peter__ at web.de
Wed Mar 16 06:47:31 EDT 2016
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:
...
More information about the Python-list
mailing list