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