Функция iter и два аргумента
У функции iter есть ещё один вариант использования. Итератор можно получить, если в iter передать первым аргументом обычную функцию, которая при вызове будет возвращать очередной элемент последовательности, а вторым — значение, при возврате которого этой функцией итерация должна закончиться. Давайте посмотрим на примере(см картинку).
Использование lambda в примере необходимо, поскольку переданную в iter функцию должно быть можно вызывать без аргументов. Сконструированный таким образом итератор для получения следующих элементов вызывает переданную функцию снова и снова до тех пор, пока функция не вернёт значение для остановки, при котором итератор генерирует исключение StopIteration, и итерация заканчивается.
Post #1200
7.25K

- 👍 21
- 😱 4
- 😢 2
- 🎉 1