Язык программирования Python.

Функции itertools.takewhile() и itertools.dropwhile().

Некоторую новизну вносит другой вид фильтра: takewhile() и его «отрицательный» аналог dropwhile(). Следующий пример поясняет их принцип действия:

For i in takewhile(lambda x: x > 0, [1, -2, 3, -3]):

 print i,

Print.

For i in dropwhile(lambda x: x > 0, [1, -2, 3, -3]):

 print i,

1.

-2 3 -3.

Таким образом, takewhile() дает значения, пока условие истинно, а остальные значения даже не берет из итератора (именно не берет, а не высасывает все до конца!). И, наоборот, dropwhile() ничего не выдает, пока выполняется условие, зато потом выдает все без остатка.