empty clause of for loops

alister alister.ware at ntlworld.com
Wed Mar 16 09:58:16 EDT 2016


On Wed, 16 Mar 2016 13:45:53 +0000, Mark Lawrence wrote:

> 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? :)

no , i just typed it, while trying to hold a conversation with swmbo :-(

apologies to the op if e could not see where i was intending to go with 
this.







-- 
Tip the world over on its side and everything loose will land in Los 
Angeles.
		-- Frank Lloyd Wright



More information about the Python-list mailing list