Python Glossary English

все 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Сообщить о неточности