empty clause of for loops

Sven R. Kunze srkunze at mail.de
Wed Mar 16 10:39:07 EDT 2016


On 16.03.2016 14:09, Tim Chase wrote:
> If you can len() on it, then the obvious way is
>> if my_iterable:
> for x in my_iterable:
> do_something(x)
> else:
> something_else()
>> However, based on your follow-up that it's an exhaustible iterator
> rather than something you can len(), I'd use enumerate:
>> count = 0 # have to set a default since it doesn't get assigned
> # if no iteration happens
> for count, x in enumerate(my_iterable, 1):
> do_something(x)
> if not count:
> something_else()

Interesting variation. Good to keep in mind if I encounter a situation 
where I need both (empty flag + counter). Thanks. :)
> I do a lot of ETL work, and my code often has to report how many
> things were processed, so having that count is useful to me.
> Otherwise, I'd use a flag:
>> empty = True
> for x in my_iterable:
> empty = False
> do_something(x)
> if empty:
> something_else()

Best,
Sven


More information about the Python-list mailing list

AltStyle によって変換されたページ (->オリジナル) /