empty clause of for loops
Mark Lawrence
breamoreboy at yahoo.co.uk
Wed Mar 16 09:45:53 EDT 2016
On 16/03/2016 13:25, alister wrote:
> 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
>
Did you test this? :)
--
My fellow Pythonistas, ask not what our language can do for you, ask
what you can do for our language.
Mark Lawrence
More information about the Python-list
mailing list