import itertools itertools.takewhile(predicate, iterable)
predicate
- функция возвращающая bool
значение,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]