все Python 3itertoolsфункция
itertools.takewhile
itertools
Отдаёт элементы, пока предикат истинен, затем останавливается.
Синтаксис
itertools.takewhile(predicate, iterable)
Останавливается навсегда на первом элементе, где предикат ложь, — в отличие от filter(), который просто пропускает неподходящие и идёт дальше (для противоположного поведения есть dropwhile). Учти: элемент, оборвавший выдачу, уже вытянут из исходного итератора и потерян, если продолжить читать тот же итератор.
Примеры
import itertools
print(list(itertools.takewhile(lambda x: x < 3, [1, 2, 3, 1]))) # → [1, 2]
print(''.join(itertools.takewhile(str.isdigit, '2026год'))) # → 2026
print(list(itertools.takewhile(lambda x: x > 0, [-1, 5, 7]))) # → []
print(list(filter(lambda x: x < 3, [1, 2, 3, 1]))) # → [1, 2, 1]
print(list(itertools.dropwhile(lambda x: x < 3, [1, 2, 3, 1]))) # → [3, 1]
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности