Sometimes, we want to know if a generator is empty from the start with Python.
In this article, we’ll look at how to know if a generator is empty from the start with Python.
How to know if a generator is empty from the start with Python?
To know if a generator is empty from the start with Python, we can call next
to see if the StopIteration
exception is raised.
For instance, we write
def peek(iterable):
try:
first = next(iterable)
except StopIteration:
return None
return first, itertools.chain([first], iterable)
res = peek(my_sequence)
if res is None:
# ...
else:
# ...
to define the peek
function.
In it, we call next
with iterable
to see if the first item is returned or the StopIteration
exception is raised.
If the error is raised, we return None
.
Otherwise, we return first
and the iterator that we get by calling chain
with [first]
and iterable
which no longer has the first object.
Then we call peek
to see is the returned result is None
to see if the generator is empty.
Conclusion
To know if a generator is empty from the start with Python, we can call next
to see if the StopIteration
exception is raised.