Cómo invertir una lista en Python
-
Usando
range()
para revertir una lista en Python -
Invertir una lista por el bucle
while
en Python - Invertir una lista usando el operador Slice en Python
-
Usa
reversed()
para revertir una lista en Python
Este tutorial mostrará diferentes formas de cómo invertir una lista en Python.
La inversión de lista es uno de los problemas de programación inicial más comunes que se experimentan cuando se aprende a programar. En Python, hay varias maneras fáciles de invertir una lista.
Usando range()
para revertir una lista en Python
range()
es una función incorporada en Python que produce una lista de un rango de números.
La sintaxis de range()
range(start, stop, step)
Esta función tiene 3 argumentos; el principal argumento requerido es el segundo argumento stop
, un número que denota dónde quieres parar. Hay 2 argumentos opcionales, start
especifica donde debes empezar a contar y step
especifica el incremento de la secuencia.
Ten en cuenta que stop
tendrá un desfase de 1 ya que el conteo comienza en 0
. Para crear una lista que se detenga en 5 usando range()
, el valor de parada tendría que ser 6.
numbers = list(range(6))
print(numbers)
Resultado:
[0, 1, 2, 3, 4, 5]
Para revertir esta lista, entonces tienes que especificar los argumentos start
y step
.
El start
está puesto en 5, mientras que el step
es 1
, ya que queremos disminuir el rango en 1 cada vez. El argumento stop
también debe ser puesto en 1
, ya que queremos detenernos en 0
(ya que stop
tiene un desplazamiento de 1).
numbers = list(range(5, -1, -1))
print(numbers)
Resultado:
[5, 4, 3, 2, 1, 0]
Invertir una lista por el bucle while
en Python
Declarar una lista de 10 números enteros aleatorios que queremos crear una nueva lista en orden inverso.
numbers = [66, 78, 2, 45, 97, 17, 34, 105, 44, 52]
Usar un bucle de tiempo sobre la lista para obtenerla en orden inverso. Primero, obtén el tamaño de la lista y dedúcelo por 1 para apuntar al último elemento de la lista. Declaremos también una lista vacía para almacenar la nueva versión invertida de la lista anterior.
idx = len(numbers) - 1
newList = []
Ahora usa el bucle while para iterar y almacenar cada elemento de la nueva lista con cada iteración disminuyendo idx
hasta que llegue a 0
.
while idx >= 0:
newList.append(numbers[idx])
idx = idx - 1
print(newList)
Resultado:
[52, 44, 105, 34, 17, 97, 45, 2, 78, 66]
Invertir una lista usando el operador Slice en Python
Si prefieres no hacer un bucle sobre la lista, entonces usa el operador slice
para disminuir el índice del array en 1.
De forma similar a range()
, el operador slice acepta tres argumentos: start
, stop
y step
.
Deja los dos primeros argumentos en blanco para que cubra todo el array y establece el valor de step
en -1
para que empiece al final del array y lo reduzca en 1 cada vez.
newList = numbers[::-1]
print(newList)
Resultado:
[52, 44, 105, 34, 17, 97, 45, 2, 78, 66]
Usa reversed()
para revertir una lista en Python
Otra forma fácil de invertir una lista en Python es usar la función incorporada reversed()
. Esta función acepta un argumento de lista y devuelve un iterador de la versión invertida de la misma lista.
Usando el mismo ejemplo numbers
de arriba, invierta la lista usando esta función. No olvide envolver la función con list()
para almacenar realmente el valor de retorno de reversed()
en una lista.
newList = list(reversed(numbers))
print(newList)
Alternativamente, también puede usar un bucle for
para iterar sobre la lista invertida y almacenarla directamente en newList
.
newList = [num for num in reversed(numbers)]
print(newList)
La salida de ambas soluciones será la misma.
[52, 44, 105, 34, 17, 97, 45, 2, 78, 66]
En resumen, Python proporciona una forma sencilla de invertir una lista haciendo uso de la función reversed()
. También puedes revertir una lista manualmente haciendo un bucle en un bucle for
o while
. Python también tiene un método sencillo para revertir una lista en una sola línea si se siente cómodo usando el operador slice.
Skilled in Python, Java, Spring Boot, AngularJS, and Agile Methodologies. Strong engineering professional with a passion for development and always seeking opportunities for personal and career growth. A Technical Writer writing about comprehensive how-to articles, environment set-ups, and technical walkthroughs. Specializes in writing Python, Java, Spring, and SQL articles.
LinkedInArtículo relacionado - Python List
- Convertir un diccionario en una lista en Python
- Eliminar todas las apariciones de un elemento de una lista en Python
- Eliminar duplicados de una lista en Python
- Cómo obtener el promedio de una lista en Python
- ¿Cuál es la diferencia entre los métodos de lista que añaden y amplían
- Cómo convertir una lista en cadena en Python