Фильтрация до последнего истинного (или с первого ложного) элемента
Если необходимо отобрать объекты, стоящие после неудовлетворяющего условию элемента, используем itertools.dropwhile()
:
>>> list(itertools.dropwhile(filter_func, numbers))
[2, 3, 2, 1, 0]
Метод itertools.takewhile()
наоборот выведет элементы, удовлетворяющие условию вплоть до объекта, прерывающего цепочку истинных элементов:
>>> list(itertools.takewhile(filter_func, numbers))
[0, 1]