Explain how you reverse a generator?

I confused because its not reversed(), but how?


Hello @codingperson51867872 :slightly_smiling_face:!

You cannot reverse a generator in any generic way except by casting it to a sequence and creating an iterator from that. Later terms of a generator cannot necessarily be known until the earlier ones have been calculated.

Even worse, you can’t know if your generator will ever hit a StopIteration exception until you hit it, so there’s no way to know what there will even be a first term in your sequence.

The best you could do would be to write a reversed_iterator function:

def reversed_iterator(iter):
    return reversed(list(iter))

You could also, of course, replace reversed in this with your imap based iterative version, to save one list creation.

Source: https://stackoverflow.com/questions/1561214/python-reverse-generator


Thanks again @trevorhodges!

1 Like