Генераторы Python очень полезны. Они имеют преимущества перед функциями, которые возвращают списки. Однако вы могли бы len(list_returning_function())
. Есть ли способ len(generator_function())
?
UPDATE:
Конечно, len(list(generator_function()))
будет работать.....
Я пытаюсь использовать генератор, который я создал внутри нового генератора, который я создаю. В рамках расчета в новом генераторе необходимо знать длину старого. Однако я хотел бы сохранить оба из них вместе с теми же свойствами, что и генератор, в частности - не поддерживать весь список в памяти, поскольку он может быть очень длинным.
ОБНОВЛЕНИЕ 2:
Предположим, что генератор знает длину цели даже с первого шага. Кроме того, нет причин поддерживать синтаксис len()
. Пример. Если функции в Python являются объектами, не могу ли я назначить длину переменной этого объекта, которая будет доступна для нового генератора?