Listas en Python

Una lista es una colección que está ordenada y puede cambiar. Almacenan conjuntos de elementos relacionados entre sí, o distintos. En Python las listas están escritas entre corchetes.



Ejemplo de la sintaxis para crear una lista

Como puedes ver en el ejemplo para crear una lista en Python, solo tiene que añadir una secuencia de elementos separados por comas entre corchetes:

thislist = ["Mexico", "Colombia", "Uruguay"]
print(thislist)

Acceso a los elementos de la lista

Puede acceder a los elementos de la lista haciendo referencia al número de índice. Un índice de una lista en python es un número entero que hace referencia la posición que tiene un elemento en una lista:

thislist = ["Mexico", "Colombia", "Uruguay"]
print(thislist[1])

El primer elemento tiene un 0 en el valor del índice

La indexación negativa permite empezar desde el final

La indexación negativa significa comenzar desde el final.

-1 se refiere al último elemento, -2 se refiere al penúltimo elemento, -3 al antepenúltimo, etc…

Ejemplo de cómo pintar el último elemento de una lista:

thislist = ["Uruguay", "Mexico", "Chile"]
print(thislist[-1])

Rango de índices

Puede especificar un rango de índices especificando dónde comenzar y dónde terminar el rango.

Al especificar un rango, el valor devuelto será una nueva lista con los elementos especificados.

El ejemplo recupera el segundo, tercer y cuarto elemento de la lista


thislist = ["Mexico", "España", "Argentina", "Colombia", "Cuba", "Venezuela", "Uruguay"]
print(thislist[1:4])

La búsqueda comenzará en el índice 2 (incluido) y terminará en el índice 5 (no incluido).

Recuerde que el primer elemento tiene índice 0.

Al omitir el valor inicial, el rango comenzará en el primer elemento. El ejemplo recuperará los cinco primeros valores de la lista

thislist = ["España", "Mexico", "Argentina", "Colombia", "Uruguay", "Chile", "Venezuela"]
print(thislist[:5])

Por el contrario, si se deja vacío el valor final el rango abarcará desde el primer valor indicado, hasta el final de la lista:

thislist = ["España", "Mexico", "Argentina", "Colombia", "Uruguay", "Chile", "Venezuela"]
print(thislist[3:])

Rango con índices negativos

Especifica los índices negativos si desea iniciar la búsqueda desde el final de la lista. En el siguiente ejemplo devuelve los elementos de «Uruguay» (-3) a (-1), pero NO incluye a «Venezuela» porque recuerda que el primer valor es 0.

thislist = ["España", "Mexico", "Argentina", "Colombia", "Uruguay", "Chile", "Venezuela"]
print(thislist[-3:-1])

Cambiar el valor del elemento

Para cambiar el valor de un artículo específico, consulte el número de índice:

Cambia el tercer elemento:

thislist = ["Uruguay", "Chile", "Venezuela"]
thislist[2] = "Perú"
print(thislist)

Cambiar los elementos en un rango de valores

Para cambiar el valor de los elementos dentro de un rango específico, defina una lista con los nuevos valores y consulte el rango de números de índice donde desea insertar los nuevos valores.

Cambie los valores «Argentina» y «Colombia» por los valores «Perú» y «Ecuador»:

thislist = ["España", "Mexico", "Argentina", "Colombia", "Uruguay", "Chile"]
thislist[2:4] = ["Perú", "Ecuador"]
print(thislist)

Si inserta más elementos de los que reemplaza, los nuevos elementos se insertarán donde especifique, y los elementos restantes se moverán en consecuencia. En el ejemplo se cambia el segundo valor reemplazándolo con dos nuevos valores:

thislist = ["España", "Mexico", "Argentina"]
thislist[1:2] = ["Perú", "Ecuador"]
print(thislist)

Importante: La longitud de la lista cambiará cuando el número de elementos insertados no coincida con el número de elementos reemplazados.

Si inserta menos elementos de los que reemplaza, los nuevos elementos se insertarán donde especificó, y los elementos restantes se moverán en consecuencia. Cambie el segundo y tercer valor reemplazándolo con un valor:

thislist = ["España", "Mexico", "Argentina"]
thislist[1:3] = ["Argentina"]
print(thislist)


Recorrer una lista con Looping

Puede recorrer los elementos de la lista utilizando un bucle for:

thislist = ["Mexico", "Colombia", "Uruguay"]
for x in thislist:
  print(x)

Aprenderá más acerca de for loops en nuestro capítulo de Python For Loops.

Loop a través de los números de índice

También puede recorrer los elementos de la lista consultando su número de índice.

Utilice las funciones range() y len() para crear un iterable adecuado. En el ejemplo puedes pintar todos los elementos haciendo referencia a su número de índice:

thislist = ["Mexico", "Colombia", "Uruguay"]
for i in range(len(thislist)):
  print(thislist[i])

While loop para iterar los elementos en una lista

Puede recorrer los elementos de la lista mediante un while loop.

Use la función len() para determinar la longitud de la lista, luego comience en 0 y recorra los elementos de la lista consultando sus índices.

Recuerde aumentar el índice en 1 después de cada iteración.

thislist = ["Mexico", "Colombia", "Uruguay"]
i = 0
while i < len(thislist):
  print(thislist[i])
  i = i + 1

Obtenga más información sobre los bucles while en nuestro Capítulo de While Loop de Python.

Looping utilizando la comprensión de listas

La comprensión de listas ofrece la sintaxis más corta para recorrer listas. Al ejecutar el siguiente código pintará todos los elementos en una lista:

thislist = ["Mexico", "Colombia", "Uruguay"]
[print(x) for x in thislist]

Comprensión de listas en Python

La comprensión de listas ofrece una sintaxis más corta cuando desea crear una nueva lista basada en los valores de una lista existente.

Por ejemplo:

Basado en una lista de países, quiere crear una nueva lista que contenga solo los países con la letra «e».

Sin comprensión de lista, necesitaría realizar una declaración for con una prueba condicional dentro:

países = ["Mexico", "Colombia", "Uruguay", "Perú"]
newlist = []

for x in países:
  if "a" in x:
    newlist.append(x)

print(newlist)

Con la comprensión de listas puedes hacer todo eso con solo una línea de código:

países = ["Mexico", "Colombia", "Uruguay", "Perú"]

newlist = [x for x in países if "e" in x]

print(newlist)

Sintaxis

El valor de retorno es una nueva lista, dejando la lista anterior sin cambios.

newlist = [expression for item in iterable if condition == True]

Condición

La condición if x != «Mexico» devolverá True para todos los elementos que no sean «Mexico», haciendo que la nueva lista contenga todas las frutas excepto «Mexico».

La condición es opcional y se puede omitir, Ejemplo sin sentencia if:

newlist = [x for x in países]

Iterable

El iterable puede ser cualquier objeto iterable, como una lista, una tupla, un conjunto, etc. Puede usar la función range() para crear un iterable:

newlist = [x for x in range(10)]

Mismo ejemplo, pero con una condición, Aceptar solo números inferiores a 5:

newlist = [x for x in range(10) if x < 5]

Puedes establecer el resultado como quieras, Establezca todos los valores en la nueva lista en ‘hola’:

newlist = ['Hola' for x in países]

La expresión también puede contener condiciones, no como un filtro, sino como una forma de manipular el resultado, Devuelve «Ecuador» en lugar de «Argentina»:

newlist = [x if x != "Argentina" else "Ecuador" for x in países]

Expresión

La expresión es el elemento actual en la iteración, pero también es el resultado, que puede manipular antes de que termine como un elemento de lista en la nueva lista. Establezca los valores en la nueva lista en mayúsculas:

newlist = [x.upper() for x in países]

Puedes establecer el resultado como quieras, Establezca todos los valores en la nueva lista en ‘hola’:

newlist = ['Hola' for x in países]

La expresión también puede contener condiciones, no como un filtro, sino como una forma de manipular el resultado, en el ejemplo, devuelve «Ecuador» en lugar de «Argentina»:

newlist = [x if x != "Argentina" else "Ecuador" for x in países]

La expresión del ejemplo anterior dice:

«Devolver el artículo si no es Argentina, si es Argentinam devolver Ecuador».


Comprobar si el elemento existe

Para determinar si un elemento especificado está presente en una lista, use la keyword in:

thislist = ["Mexico", "Colombia", "Uruguay"]
if "Mexico" in thislist:
  print("Sí, Mexico está en la lista")

Comprobar la longitud de una lista

Para determinar cuántos elementos tiene una lista, use el método len():

thislist = ["Mexico", "Colombia", "Uruguay"]
print(len(thislist))

Agregar elementos a la lista

Para agregar un elemento al final de la lista, use el método append():

Usando el método append() para agregar un elemento:

thislist = ["Mexico", "Colombia", "Uruguay"]
thislist.append("Puerto Rico")
print(thislist)

Para agregar un elemento en el índice especificado, use el método insert():

Insertar un elemento como la segunda posición:

thislist = ["Mexico", "Colombia", "Uruguay"]
thislist.insert(1, "Cuba")
print(thislist)

Borrar elementos en una lista

Existen varios métodos para eliminar elementos de una lista:

El método remove() elimina el elemento especificado:

thislist = ["Mexico", "Colombia", "Uruguay"]
thislist.remove("Mexico")
print(thislist)

El método pop() elimina el índice especificado, (o el último elemento si no se especifica el índice):

thislist = ["Mexico", "Colombia", "Uruguay"]
thislist.pop()
print(thislist)

La Keyword del elimina el índice especificado:

thislist = ["Mexico", "Colombia", "Uruguay"]
del thislist[0]
print(thislist)

La keyword del también puede eliminar la lista completamente:

thislist = ["Mexico", "Colombia", "Uruguay"]
del thislist

El método clear() vacía la lista:

thislist = ["Mexico", "Colombia", "Uruguay"]
thislist.clear()
print(thislist)

Colecciones de Python (Arrays)

Hay cuatro tipos de datos de recopilación en el lenguaje de programación Python:

  • Lista: Es una colección que está ordenada y cambiable. Permite duplicar miembros.
  • Tuple: Es una colección que está ordenada e inmutable. Permite duplicar miembros.
  • Set: Es una colección que no está ordenada ni indexada. No hay miembros duplicados.
  • Diccionarios: Es una colección que no está ordenada, modificable e indexada. No hay miembros duplicados. Al elegir un tipo de colección, es útil comprender las propiedades de ese tipo. Elegir el tipo correcto para un conjunto de datos en particular podría significar la retención del significado, y podría significar un aumento en la eficiencia o la seguridad.

Constructor List() para crear una lista

También es posible usar el constructor list() para hacer una lista.

Usando el constructor list() para hacer una lista:

thislist = list(("Mexico", "Colombia", "Uruguay")) 
print(thislist)

Métodos de lista

Python tiene un conjunto de métodos integrados que puede utilizar en las listas.

MétodoDescripción
append()Añade un elemento al final de la lista.
clear()Elimina todos los elementos de la lista.
copy()Devuelve una copia de la lista.
count()Devuelve el número de elementos con el valor especificado
extend()Agregue los elementos de una lista (o cualquier iterable), al final de la lista actual
index()Devuelve el índice del primer elemento con el valor especificado
insert()Agrega un elemento en la posición especificada
pop()Elimina el elemento en la posición especificada
remove()Elimina el primer elemento con el valor especificado
reverse()Invierte el orden de la lista
sort()Ordena la lista