Язык программирования 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() ничего не выдает, пока выполняется условие, зато потом выдает все без остатка.




Содержание  Назад  Вперед