Overview
Invertir el orden de los elementos en una lista, ya sea en sitio o creando una nueva lista.
Analogy
Como leer una fila de personas desde el final hasta el principio.
Step-by-step
- Método 1: lista.reverse() — modifica en sitio, O(n)
- Método 2: lista[::-1] — crea nueva lista, O(n)
- Método 3: reversed(lista) — iterador perezoso
- Manual: intercambia extremos moviéndose hacia el centro
Visual
nums = [1, 2, 3, 4, 5]
nums.reverse() # [5,4,3,2,1] en sitio
nums[::-1] # nueva lista
list(reversed(nums)) # de iterador
Common mistakes
- Confundir reverse() en sitio (devuelve None) con [::-1]
- Usar slicing cuando se necesitan modificaciones en sitio
Practice questions
- Invierte una cadena usando técnicas de lista
- Comprueba si una lista es un palíndromo
Time
O(n) — se toca cada elemento
Space
O(1) en sitio, O(n) con slicing