Use the skip_first()
utility function from UliEngineering:
First, install UliEngineering using
pip install --user UliEngineering
Note that UliEngineering requires Python 3.3+.
Now you can use skip_first()
like this:
from UliEngineering.Utils.Iterable import skip_first for v in skip_first(v for v in [1,2,3,4,5]): print(v) # Prints 2,3,4,5
skip_first()
will work for any Iterable
or Iterator
.
Don’t want to install UliEngineering?
Copy the skip_first()
utility function into your own code:
import collections def skip_first(it): """ Skip the first element of an Iterator or Iterable, like a Generator or a list. This will always return a generator or raise TypeError() in case the argument's type is not compatible """ if isinstance(it, collections.Iterator): try: next(it) yield from it except StopIteration: return elif isinstance(it, collections.Iterable): yield from skip_first(it.__iter__()) else: raise TypeError(f"You must pass an Iterator or an Iterable to skip_first(), but you passed {it}")