The reversed() function takes a sequence like a list and returns an iterator that produces elements from the end to the start. When you call reversed() on [1, 2, 3], it creates an iterator starting at 3. Each call to next() returns the next element backward: 3, then 2, then 1. After all elements are returned, next() raises StopIteration to signal the end. The original list remains unchanged. reversed() is efficient because it does not copy the list but yields elements one by one. It only works on sequences that support reverse iteration. If you try reversed() on an empty list, the iterator is empty and raises StopIteration immediately.