consume() из itertools — это способ вычитать все элементы итератора, не сохраняя их.Но способов реализовать это гораздо больше, и вот самые интересные
> Через for:
def consume(iterable):
for _ in iterable:
pass
> С builtins:
set(map(type, zip(iterable)))
min(map(bool, zip(iterable)))
> Через collections:
from collections import deque
deque(iterable, maxlen=0)
> Через itertools:
next(compress(iterable, repeat(False)), None)
next(dropwhile(id, iterable), None)
next(islice(iterable, sys.maxsize, None), None)
iterator = groupby(iterable, key=lambda x: None)
next(iterator, None)
next(iterator, None)
Все эти трюки делают одно — вычищают итератор. Полезно в бенчмарках, ленивых вычислениях
Кто знал хотя бы 3 из них? 🤔
👉 @PythonPortal