Сообщить об ошибке.

Функция takewhile() модуля itertools в Python

Последовательно возвращать элементы списка пока условие истинно

Синтаксис:

import itertools

itertools.takewhile(predicate, iterable)

Параметры:

Возвращаемое значение:

Описание:

Функция takewhile() модуля itertools создает итератор, который возвращает элементы из последовательности iterable до тех пор, пока функция predicate равна True или 1.

Аргумент predicate это функция, принимающая один элемент последовательности и возвращающая bool значение.

Функция itertools.takewhile() примерно эквивалентна следующему коду:

def takewhile(predicate, iterable):
    # takewhile(lambda x: x<5, [1,4,6,4,1]) --> 1 4
    for x in iterable:
        if predicate(x):
            yield x
        else:
            break

Смотрите обратную функцию itertools.dropwhile().

Примеры использования:

>>> from itertools import takewhile
>>> x = list(range(6))
>>> y = sorted(x, reverse = True)
>>> z = x + y
>>> z
# [0, 1, 2, 3, 4, 5, 5, 4, 3, 2, 1, 0]

# например нужны данные списка до определенного значения.
>>> rez = takewhile(lambda x: x<5, z)
>>> list(rez)
# [0, 1, 2, 3, 4]

>>> rez = takewhile(lambda x: x<3, z)
>>> list(rez)
# [0, 1, 2]