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