Question
Asked By – Bastien Léonard
Currently I’m doing this:
try:
something = iterator.next()
# ...
except StopIteration:
# ...
But I would like an expression that I can place inside a simple if
statement.
Is there anything built-in which would make this code look less clumsy?
any()
returns False
if an iterable is empty, but it will potentially iterate over all the items if it’s not.
I only need it to check the first item.
Someone asks what I’m trying to do.
I have written a function which executes an SQL query and yields its results.
Sometimes when I call this function I just want to know if the query returned anything and make a decision based on that.
Now we will see solution for issue: One-liner to check whether an iterator yields at least one element?
Answer
any
won’t go beyond the first element if it’s True. In case the iterator yields something false-ish you can write any(True for _ in iterator)
.
This question is answered By – Jochen Ritzel
This answer is collected from stackoverflow and reviewed by FixPython community admins, is licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0