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