Erstes Element eines Generators/Iterators in Python überspringen
English
Deutsch
Verwende die skip_first()-Dienstfunktion aus UliEngineering:
Installiere zunächst UliEngineering mit
install_uliengineering_user.sh
pip install --user UliEngineeringBeachte, dass UliEngineering Python 3.3+ benötigt.
Nun kannst du skip_first() wie folgt verwenden:
skip_first_usage.py
from UliEngineering.Utils.Iterable import skip_first
for v in skip_first(v for v in [1,2,3,4,5]):
print(v) # Gibt 2,3,4,5 ausskip_first() funktioniert für jedes Iterable oder Iterator.
Möchtest du UliEngineering nicht installieren?
Kopiere die skip_first()-Dienstfunktion in deinen eigenen Code:
skip_first_impl.py
import collections
def skip_first(it):
"""
Überspringe das erste Element eines Iterators oder Iterable,
wie eines Generators oder einer Liste.
Dies gibt immer einen Generator zurück oder löst TypeError() aus,
falls der Typ des Arguments nicht kompatibel ist
"""
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"Du musst einen Iterator oder ein Iterable an skip_first() übergeben, aber du hast {it} übergeben")Check out similar posts by category:
Python
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow