Моя функция создает цепочку генераторов:
def bar(num):
import itertools
some_sequence = (x*1.5 for x in range(num))
some_other_sequence = (x*2.6 for x in range(num))
chained = itertools.chain(some_sequence, some_other_sequence)
return chained
Моя функция иногда должна возвращать в цепочке
в обратном порядке. По сути, я хотел бы иметь возможность сделать следующее:
if num < 0:
return reversed(chained)
return chained
К сожалению: Когда я впервые задал этот вопрос, я не думал об обратимости генераторов. Как многие отмечали, генераторы не могут быть отменены.
Я действительно хочу обратить сглаженное содержимое цепочки на обратное; не только порядок генераторов.
Судя по ответам, нет единственного вызова, который я мог бы использовать для реверсирования itertools.chain, поэтому я думаю, что единственное решение здесь - использовать список, по крайней мере, для обратного случая , и, возможно, для обоих.