Абсолютно не, по простой причине, что iterables, как гарантируют, не будут конечны.
Рассматривают эту совершенно легальную функцию генератора:
def forever():
while True:
yield "I will run forever"
Попытка вычислить длину этой функции с len([x for x in forever()])
не будет ясно работать.
, Поскольку Вы отметили, большая часть цели итераторов/генераторов состоит в том, чтобы быть в состоянии работать над большим набором данных, не загружая все это в память. То, что Вы не можете получить непосредственную длину, нужно считать компромиссом.
Любопытно, почему вы ищете альтернативу Tropo, если она вам нравится.