Curso de Python

Aprende Python de una buena vez

gratis
texto

Listas (arrays, arreglos o vectores) en Python. Uso y creación de listas en Python

Las listas en Python forman parte de lo que se conoce como estructuras de datos que nos ofrece Python. Cabe resaltar que, si has programado en otros lenguajes, las listas no son más que lo que se conoce como arreglos, arrays o vectores en otros lenguajes de programación.

Las listas, son una estructura de datos de vital importancia, pues con útiles para resolver múltiples problemas que no podríamos solucionar sin ellas. Las listas son utilizadas para almacenar múltiples valores en una única variable. Esto puede parecer innecesario, pero en realidad resuelve muchos desafíos.

En múltiples ocasiones es necesario almacenar gran cantidad de información en una variable y a menudo sucede que no conocemos con exactitud la cantidad de datos que debemos almacenar, pero sabemos que sí sería más de uno, como por ejemplo almacenar los nombres de las personas ingresadas en tu programa. En este caso, las listas nos permiten solucionar este tipo de problemas, pues en una misma lista podremos almacenar todos esos valores, sin importar cuántos sean.

No tendría sentido crear 100 variables diferentes para almacenar 100 nombres en tu programa, ¿verdad? ¿Y qué tal si luego no son 100 sino 1000? ¡Aún peor! Para eso son las listas en Python. Veamos un ejemplo:

Ejemplo de listas en Python

Imaginemos que queremos crear un programa con el cual podamos de algún modo almacenar los nombres e identificaciones de diferentes personas. El usuario de tu programa es quien suministra la información de cada persona. Así entonces, dado que es el usuario quien lo hace, nosotros no tenemos manera alguna de saber cuántas personas va a querer ingresar por medio de tu programa. Entonces ¿cómo crees que podrías hacer esto? No es posible con lo que sabemos hasta ahora, pero ya que conocemos un poco de listas, entonces apliquémoslo. Pero antes, analicemos el problema y aprendamos a usar listas en Python:

Usando listas en Python:

¡Pues bien!, Las listas o los vectores han venido para ayudarnos en múltiples circunstancias similares a la del ejemplo. Dado que una lista es capaz de almacenar múltiples valores en una misma variable, tenemos el elemento perfecto para almacenar la información de todos los libros, podremos crear una lista de un tamaño cualquiera capaz de contener en sí los nombres de los usuarios y otra lista con las identificaciones de las personas.

Nota: Alternativamente podríamos crear una tabla (o matriz) de dos columnas que contenga en la primera columna los nombres y en la segunda las identificaciones. Ambas soluciones son válidas y vamos a ver ambas. En este artículo usando listas y en el siguiente usando tablas en la sección de tablas.

Muy bien, ahora que sabemos la gran utilidad de las listas, vectores o arreglos para nosotros, aprendamos más acerca de estos, veamos cómo crear una lista, cómo recorrerlas y algunos ejemplos de esto.

¿Cómo declarar una lista en Python?

Para declarar una lista en Python, se deben seguir las mismas normas básicas que se siguen para declarar una variable cualquiera, con un pequeño cambio en la sintaxis:

nombre_de_la_lista = [] otra_lista = list()

Todo muy claro, excepto por los "[]" o el uso de list(). Creamos una lista con un nombre cualquiera (nombre_de_la_lista u otra_lista) y le asignamos inicialmente una lista vacía. Sí, así es los corchetes "[]" sin nada en su interior crear una lista vacía. De hecho, al usar list(), sin poner nada entre los paréntesis, obtenemos lo mismo.

Una vez la lista es creada, podemos agregarle elementos, quitarlos, obtenerlos, y varias cosas más. Sin embargo, también podemos crear listas con elementos en su interior desde el comienzo.

lista_con_elementos = [1, 2, True, 'Hola', 5.8] otra_lista_con_elementos = list([4, 9, False, 'texto'])

Como puedes ver, al poner valores entre corchetes "[]" y separados por comas, estarás indicando los elementos para tus listas. Cabe resaltar también que puedes agregar elementos mixtos, es decir, pueden ser de cualquier tipo de dato (texto, booleanos, números, etc.).

Ya tenemos claro cómo declarar una lista en Python. Sin embargo, aún no sabemos cómo obtener los elementos de esa lista, es decir, una vez dicha lista tiene los elementos que queremos, cómo podemos obtener esa información y más aún, cómo obtener un elemento específico dentro de esa lista. Veámoslo:

Obtener el valor de un elemento de una lista en Python

Es muy común el caso en el que tenemos una lista con una enorme cantidad de elementos, sin embargo, de todos esos elementos solo nos interesa uno en especial y corremos con la suerte de saber cuál es su valor o mejor aún su posición específica dentro de la lista.

mi_lista = ['Juan', 'Pedro', 'Laura', 'Carmen', 'Susana'] print(mi_lista[0]) # Muestra Juan (la primera posición es la 0) print(mi_lista[-1]) # Muestra Susana print(mi_lista[1]) # Muestra Pedro print(mi_lista[2]) # Muestra Laura print(mi_lista[-2]) # Muestra Carmen

Acá hay varias cosas por entender. Así que veámoslas de una en una:

  1. Puedes acceder a una posición usando el nombre de la variable y corchetes "[]" indicando en su interior el índice que quieres obtener.
  2. Las posiciones de las listas arrancan enumeradas desde cero, así la primera posición se accede como [0] y la última sería el tamaño total menos 1
  3. Se pueden usar índices negativos, así accediendo a los elementos de la lista contando dese atrás. Así un modo sencillo de obtener el último elemento es con [-1]
  4. Si accedes a un índice que no existe, el programa fallará.

Ya tenemos entonces una forma de acceder de forma individual a un elemento de una lista en Python, vamos a ver ahora como obtener todos los elementos de un vector de forma simple, recorriendo uno a uno:

Recorrer una lista en Python

En este caso, los ciclos vienen de gran ayuda. El caso general, sería hacerlo por medio de un ciclo for que vaya accediendo uno por uno a los elementos o incluso aumentando de uno en uno el índice que queremos acceder de la lista.

edades = [20, 41, 6, 18, 23] # Recorriendo los elementos for edad in edades: print(edad) # Recorriendo los índices for i in range(len(edaded)): print(edaded[i]) # Con while y los índices indice = 0 while indice < len(edaded): print(edades[indice]) indice += 1

Como puedes ver, el ciclo for puede acceder directamente a los elementos y recorrerlos uno por uno. Sin embargo, a veces puedes necesitar los índices y también puedes acceder a cada elemento por medio de ese índice ya sea usando un ciclo for o incluso un while con un contador.

Ahora que sabemos cómo acceder a las posiciones y cómo recorrer una lista en Python, veamos cómo se pueden agregar (append()) y remover (pop() o remove()) elementos de uan lista.

Cómo agregar y remover elementos a una lista en Python

Hay muchas operaciones que se pueden llevar a cabo con las listas en Python. Sin embargo, las más importantes son agregar y remover, elementos de la misma, así que veamos cómo hacerlo.

Agregado elementos a una lista con append() en Python

Como indico, se puede usar la función append de las listas para agregar un elemento.

números = [] números.append(10) números.append(5) números.append(3) print(números) # Mostrará [10, 5, 3]

Como ves, con cada llamada a append(), podrás agregar un nuevo elemento, de cualquier tipo a la lista. Sin embargo, hay otro modo de hacerlo, creando una nueva lista con los nuevos elementos.

Uniendo listas en Python

Hay otro modo de agregar elementos a una lista y es básicamente uniendo la lista existente con una nueva. De ese modo, podría evitar llamar a append() varias veces, sino unir todo de una sola vez. Así sería el ejemplo anterior, simplificado

números = [] # Unimos la lista anterior con una nueva números = números + [10, 5, 3] print(números) # Mostrará [10, 5, 3]

Ahora veamos cómo remover elementos de una lista, de diferentes formas.

Removiendo un elemento de una lista con pop() en Python

La función pop, removerá un elemento según el índice que se indique.

palabras = ['hola', 'hello', 'ola'] palabras.pop(1) print(palabras) # Mostrará ['hola', 'ola']

Notar que acá debes indicar la posición del elemento en la lista. Esa posición debe existir, o sino fallará. También puedes usar índices negativos.

Ahora, si no conoces la posición, puedes usar el valor que deseas borrar. Veamos:

Removiendo un elemento de una lista con remove() en Python

La función remove, removerá un elemento según el valor que este tenga al interior de la lista.

palabras = ['hola', 'hello', 'hello', 'ola'] palabras.remove('hello') print(palabras) # Mostrará ['hola', 'hello', 'ola']

Hay cosas interesantes acá. Primero, remove buscará por ti el elemento y lo borrará. Sin embargo, solo borrará el primero que encuentra, no todos ellos. Por lo tanto, dado que "hello" estaba dos veces en nuestra lista, solo removió el primero.

Muy bien, llegó el momento de afianzar nuestros conocimientos viendo un ejemplo. Ahora que tenemos claro cómo declarar una lista en Python, cómo recorrerla, cómo acceder a sus elementos, además de cómo agregarlos y removerlos, vamos a ver un ejemplo basado en el problema que planteé al inicio del artículo (el de los nombres e identificaciones de personas).

Ejemplo de listas en Python

El problema es simple, queremos crear un programa con el cual podamos guardar los nombres y las identificaciones de múltiples personas (no sabemos cuántas) sin perder ninguna de ellas. El usuario es el encargado de suministrar la información de cada persona. Vamos a suponer que el usuario solo podrá ingresar un máximo de tres personas, para así poder comprobar fácilmente nuestro programa. Sin embargo, puedes hacerlo sin límite si prefieres:

# Creamos las listas (vacías al comienzo) nombres = [] identificaciones = [] # Definimos un tamaño para las listas # Lo puedes cambiar si quieres tamaño = 3 # Leemos los cinco datos y los agregamos a la lista for i in range(tamaño): print("Ingrese los datos de la persona", i + 1) nombre = input("Nombre: ") identificación = input("Identificación: ") nombres.append(nombre) identificaciones.append(identificación) # Ahora mostremos las listas for i in range(tamaño): print("Mostrando los datos de la persona", i + 1) print("Nombre:", nombres[i]) print("Identificación:", identificaciones[i])

Estoy seguro de que a estas alturas comprendes bien qué hace cada una de estas líneas. En caso de que no comprendas nada de esto, dale una mirada de nuevo al artículo, la sección de ciclos o la sección de salida de datos o incluso entrada de datos.

Nota: Si algo no es muy claro, detectas algún error, tienes alguna sugerencia o simplemente tienes algo que comentarme, puedes hacerlo con total tranquilidad en la sección de comentarios.

Ahora que ya conocemos todo bien acerca de las listas en Python (arreglos o vectores en otros lenguajes), podremos hablar acerca de tablas que en realidad no son tan diferentes a lo que ya he explicado, por lo que seguramente el artículo de tablas no será tan extenso como este.

La última actualización de este artículo fue hace 2 semanas

Imagen descriptiva de JuanDMeGon

Juan David Meza González

JuanDMeGon

Magister, Ingeniero, Desarrollador
Web & Instructor

¡Listo!

En breve recibirás un mensaje de confirmación. Verifica, por si acaso, la carpeta de correo no deseado.

...

Si te parece bien, te enviaré de vez en cuando, mensajes de interés sobre los temas que se tratan en el sitio.

Tu dirección de correo electrónico será almacenada con un interés según el artículo en el que te encuentres.

Por supuesto, puedes cancelar tu suscripción en cualquier momento.