Python logo - Curso de Python desde cero

Las listas en Python

Vemos las listas en Python, su sintaxis y las operaciones básicas

¡Bienvenidos a otra entrega de nuestro curso de programación en Python, donde damos nuestros primeros pasos explorando los fundamentos de este versátil lenguaje de programación!

En el capítulo anterior, exploramos una piedra angular en la programación: las funciones, específicamente, los parámetros o argumentos en las funciones. Continuaremos profundizando en el uso de las funciones a lo largo del curso. Sin embargo, ahora es el momento de abordar otro concepto fundamental que es esencial no solo en Python, sino en la mayoría de los lenguajes de programación: las listas. En este artículo, exploraremos en profundidad qué son y cómo se utilizan las listas en Python.

Para aquellos que provienen de otros lenguajes de programación, notarán que las listas en Python son equivalentes a los arrays, arreglos o vectores en otros lenguajes, o al menos, muy similares en funcionalidad y utilidad.

¿Qué son las listas?

Si eres nuevo en la programación y estás explorando el concepto de listas, arrays, etc., en Python, es importante entender que las listas son estructuras de datos que permiten almacenar múltiples valores, como un conjunto de variables. Aunque no son técnicamente variables, esta analogía puede ayudar a comprender su función.

Mientras que una variable almacena un único valor en la memoria de la computadora, una lista te permite almacenar múltiples valores en la misma unidad de memoria, pero funcionan como una unidad. Imagina una variable como un cajón y una lista como una estantería en la vida real.

Las listas son ampliamente utilizadas en el desarrollo de aplicaciones y es fundamental comprender su uso. Para aquellos con experiencia en otros lenguajes, es importante destacar las diferencias entre las listas en Python y los arrays en otros lenguajes.

Una característica clave de las listas en Python, en contraste con los arrays en otros lenguajes de programación, es que las listas en python nos permiten guardar diferentes tipos de valores, además de su capacidad de expandirse dinámicamente, lo que resulta bastante conveniente. En otros lenguajes, como Java, debes recurrir a otras estructuras para lograr esto, ya que los arrays no lo permiten.

Puede surgir la pregunta de si una lista puede contener elementos iguales en diferentes posiciones. La respuesta es sí; en las listas, es posible que los elementos se repitan en distintas posiciones.

Sintaxis de las listas en Python: Entendiendo su Estructura y Uso

La sintaxis de las listas en Python es notablemente sencilla. Básicamente, consiste en asignar un nombre a tu lista, seguido de un signo igual y, entre corchetes, los elementos que deseas incluir en esa lista, separados por comas.

nombre_lista = [elemento1, elemento2, elemento3, etc]

Es importante destacar que una lista puede estar vacía, contener un solo elemento o incluso cientos de elementos. En el caso de tener varios elementos, se deben separar con comas.

Declaración de una Lista en Python

Veamos un ejemplo práctico para comprender mejor la sintaxis. Supongamos que queremos almacenar una serie de nombres, que son datos de tipo texto y, como se mencionó anteriormente, deben ir entre comillas.

mi_primera_lista = ["Lucio", "BocaNegra", "MariMisi", "Ramón"]

Si deseamos imprimir esta lista, simplemente utilizamos la función print() de la siguiente manera:

print(mi_primera_lista[:])
# Salida: ['Lucio', 'BocaNegra', 'MariMisi', 'Ramón']

El índice de las listas

Las listas permiten almacenar varios valores, y para acceder a estos valores de manera efectiva, utilizamos lo que se conoce como índices, que indican la posición de un elemento dentro de la lista. Es importante recordar que, en Python, la numeración de los índices comienza en cero.

nombre_lista = [elemento1, elemento2, elemento3, etc]

Posición 0 -> elemento1
Posición 1 -> elemento2 
Posición 2 -> elemento3 
...

Por ejemplo, si nuestra lista tiene cuatro elementos, estos ocupan las posiciones desde 0 hasta 3: Lucio está en la posición 0, BocaNegra en la posición 1, MariMisi en la posición 2 y Ramón en la posición 3.

mi_primera_lista = ["Lucio", "BocaNegra", "MariMisi", "Ramón"]

Posición 0 -> Lucio
Posición 1 -> BocaNegra
Posición 2 -> MariMisi
Posición 3 -> Ramón

Para acceder a un elemento específico, simplemente escribimos el nombre de la lista seguido del índice del elemento entre corchetes.

print(mi_primera_lista[2])
# Salida: 'MariMisi'

Si intentas acceder a un índice que no existe en tu lista, se generará lo que se conoce como una excepción o un error.

Sin embargo, Python tiene una característica única: cuando se introducen índices negativos, comienza a contar desde el final de la lista.

mi_primera_lista = ["Lucio", "BocaNegra", "MariMisi", "Ramón"]

Posición 0 -> Lucio     <- Posición -4
Posición 1 -> BocaNegra <- Posición -3
Posición 2 -> MariMisi  <- Posición -2
Posición 3 -> Ramón     <- Posición -1

Por ejemplo, si escribimos -2, accedemos al elemento MariMisi.

print(mi_primera_lista[-2])
# Salida: 'MariMisi'

Cuando empieza a contar desde el final no empieza a contar desde cero, sino que directamente empezaría a contar desde -1.

Slicing: Acceso a Porciones de Lista

Cuando trabajamos con listas largas, a menudo necesitamos acceder a una porción específica en lugar de toda la lista. Esto se logra mediante el «slicing» (rebanado). La sintaxis general es [inicio:final], donde el elemento en la posición inicio está incluido, pero el elemento en la posición final no lo está.

mi_primera_lista = ["Lucio", "BocaNegra", "MariMisi", "Ramón"]

print(mi_primera_lista[0:3])
# Salida: ['Lucio', 'BocaNegra', 'MariMisi']

Lo que le estamos diciendo con esto es que debe acceder a los tres primeros elementos, desde el índice cero (incluido) hasta el índice 3, quedando excluido el último índice. Otro ejemplo, para acceder a los elementos desde el índice 1 hasta el índice 3 (no inclusive, recuerda).

print(mi_primera_lista[1:3])
# Salida: ['BocaNegra', 'MariMisi']

Sintaxis Abreviada para Acceder a Porciones de Listas en Python

Cuando trabajamos con listas en Python, podemos simplificar aún más el acceso a porciones específicas de elementos mediante notaciones abreviadas. Imagina que deseamos acceder a los tres primeros elementos de una lista, pero queremos hacerlo de manera más concisa. Existe una técnica que nos permite lograrlo fácilmente: omitir el primer número en la notación de porciones. Python entenderá automáticamente que queremos empezar desde el primer elemento, que corresponde al índice 0. El resultado obtenido será idéntico al que obtendríamos especificando el índice inicial como 0. Veamos un ejemplo:

mi_primera_lista = ["Lucio", "BocaNegra", "MariMisi", "Ramón"]

# Acceder a los tres primeros elementos de forma abreviada
print(mi_primera_lista[:3])
# Resultado: ['Lucio', 'BocaNegra', 'MariMisi']

# Acceder a los tres primeros elementos especificando el índice inicial 0
print(mi_primera_lista[0:3])
# Resultado: ['Lucio', 'BocaNegra', 'MariMisi']

Ambas formas de acceso producen el mismo resultado, lo que permite escribir código de manera más breve y legible cuando necesitas obtener una porción de los primeros elementos de una lista.

Otra notación abreviada útil es prescindir del segundo índice al acceder a una porción de una lista. Al omitir el segundo índice, le estás indicando a Python que deseas acceder desde el primer índice hasta el final de la lista. En este caso, estarías accediendo desde el elemento con índice 2 hasta el último elemento de la lista:

# Acceder desde el índice 2 hasta el final de la lista
print(mi_primera_lista[2:])
# Resultado: ['MariMisi', 'Ramón']

Esta técnica es especialmente útil cuando trabajas con listas extensas y necesitas enfocarte en una porción específica de elementos. Python ofrece estas nomenclaturas abreviadas para hacer que tu código sea más eficiente y legible.

Operaciones con Listas en Python: Agregar, Insertar, Extender, Indexar y Comprobar

En Python, trabajar con listas es fundamental, y dominar las operaciones que puedes realizar con ellas te hará más eficiente como programador. A continuación, exploraremos diversas operaciones clave:

Añadir elementos a una lista

.append() – Agregar Elementos al Final de una Lista

Para agregar elementos al final de una lista en Python, puedes utilizar la función .append(). La sintaxis es sencilla: escribes el nombre de la lista, seguido de un punto y luego .append(), dentro de los paréntesis colocas el elemento que deseas agregar.

mi_lista.append(elemento)

Por ejemplo, si deseas agregar una persona más a tu lista, simplemente ingresas el nombre entre paréntesis, y este nuevo elemento se añadirá al final de la lista. Luego, puedes imprimir la lista completa sin especificar un índice.

mi_primera_lista = ["Lucio", "BocaNegra", "MariMisi", "Ramón"]
mi_primera_lista.append("Cirindolo")
print(mi_primera_lista[:])
# Resultado: ['Lucio', 'BocaNegra', 'MariMisi', 'Ramón', 'Cirindolo']

La función .append() agrega el elemento al final de la lista, como se muestra en el ejemplo.

.insert() – Insertar Elementos en una Posición Específica

Cuando necesitas agregar un elemento en una posición determinada en una lista, puedes utilizar la función .insert(). Esta función requiere dos argumentos: el primero es la posición o índice en la que deseas insertar el elemento y el segundo es el elemento en sí.

mi_primera_lista.insert(posición, elemento)

Por ejemplo, aquí le decimos que en la posición 2 inserte el elemento «Juan Tomás». Al ejecutar el programa e imprimir la lista, notarás que «Juan Tomás» se encuentra entre «BocaNegra» y «MariMisi», que es donde estaría el índice 2.

mi_primera_lista = ["Lucio", "BocaNegra", "MariMisi", "Ramón", "Cirindolo"]
mi_primera_lista.insert(2, "Juan Tomás")
print(mi_primera_lista[:])
# Resultado: ['Lucio', 'BocaNegra', 'Juan Tomás', 'MariMisi', 'Ramón', 'Cirindolo']

.extend([]) – Agregar Varios Elementos a una Lista

Si deseas agregar varios elementos a una lista de una sola vez, puedes utilizar la función .extend([]). Escribes el nombre de la lista, seguido de un punto y .extend([]), dentro de los corchetes colocas los elementos que deseas agregar.

mi_primera_lista.extend([elemento1, elemento2, ...])

En esencia, esto es como concatenar otra lista, ya que al incluir los corchetes se trata de una lista adicional. El resultado será la lista original con la otra lista concatenada.

mi_primera_lista = ["Lucio", "BocaNegra", "Juan Tomás", "MariMisi", "Ramón", "Cirindolo"]
mi_primera_lista.extend(["Sonio", "Inti", "BabaKiss"])
print(mi_primera_lista[:])
# Resultado: ['Lucio', 'BocaNegra', 'Juan Tomás', 'MariMisi', 'Ramón', 'Cirindolo', 'Sonio', 'Inti', 'BabaKiss']

.index() – Obtener el índice de un elemento

A menudo, necesitas saber en qué índice se encuentra un elemento dentro de una lista. Puedes obtener este índice utilizando la función .index().

índice = mi_primera_lista.index(elemento)

Por ejemplo, si deseas saber el índice de «MariMisi» en la lista, puedes usar la siguiente instrucción:

mi_primera_lista = ["Lucio", "BocaNegra", "Juan Tomás", "MariMisi", "Ramón", "Cirindolo", "Sonio", "Inti", "BabaKiss"]
índice = mi_primera_lista.index("MariMisi")
print(índice)
# Resultado: 3

Esta función es útil cuando trabajas con listas grandes y necesitas encontrar la posición de un elemento específico.

Ya sabemos que en las listas de Python se puede repetir el mismo elemento en diferentes posiciones. Sin embargo, cuando le preguntamos por el índice siempre nos va a devolver el índice del primer elemento coincidente que se encuentra dentro de la lista.

in – Comprobar si un elemento está en la lista

Una función esencial al programar en Python es verificar si un elemento está presente en una lista. Puedes utilizar el operador in, que devuelve True si el elemento está en la lista y False si no lo está.

elemento_presente = elemento in mi_primera_lista

Por ejemplo, si deseas verificar si «BocaNegra» está en tu lista, puedes utilizar el siguiente código:

elemento_presente = "BocaNegra" in mi_primera_lista
print(elemento_presente)
# Resultado: True

Esta función es particularmente útil cuando necesitas confirmar la presencia de un elemento en una lista extensa o en escenarios específicos de tu programa.

Dominar estas operaciones te permitirá aprovechar al máximo las listas en Python y te ayudará a escribir código más eficiente y legible.

Diversidad de Tipos de Datos en Listas Python

Una de las características más potentes de las listas en Python es su capacidad para almacenar una variedad de tipos de datos. Esto significa que no estamos limitados a un solo tipo de información en una lista. Para ilustrarlo, vamos a realizar algunas modificaciones en una lista existente.

En el siguiente ejemplo, hemos creado una lista llamada mi_segunda_lista, que contiene elementos de diferentes tipos: texto, números enteros, valores booleanos y números decimales.

mi_segunda_lista = ["Lucio", 5, True, 26.98]
print(mi_segunda_lista[:])
# Resultado: ['Lucio', 5, True, 26.98]

Aquí, tenemos tanto cadenas de texto como números, lo que muestra la versatilidad de las listas en Python.

Eliminar elementos de la lista

.remove()

Utiliza esta función para eliminar un elemento específico de una lista. Debes indicar el elemento que deseas eliminar. Por ejemplo:

mi_segunda_lista.remove("Lucio")
print(mi_segunda_lista[:])
# Resultado: [5, True, 26.98]

.pop()

Si deseas eliminar el último elemento de una lista, puedes utilizar esta función. Al llamar a .pop(), se eliminará el último elemento de la lista. Por ejemplo:

mi_segunda_lista = [5, True, 26.98]
mi_segunda_lista.pop()
print(mi_segunda_lista[:])
# Resultado: [5, True]

+ Operador suma para concatenar listas

Python ofrece el operador + para concatenar listas, lo que significa que puedes combinar dos listas en una sola. Aquí tienes un ejemplo:

mi_primera_lista = ["Lucio", "BocaNegra", "MariMisi", "Ramón"]
mi_segunda_lista = ["texto", 5, True, 26.98]
mi_tercera_lista = mi_primera_lista + mi_segunda_lista
print(mi_tercera_lista[:])
# Resultado: ['Lucio', 'BocaNegra', 'MariMisi', 'Ramón', 'texto', 5, True, 26.98]

El operador + funciona como un concatenador, uniendo dos listas diferentes en una nueva.

* Operador multiplicación para Repetir Listas

Otra operación útil en Python es el operador de multiplicación *, que funciona como un repetidor de listas. Puedes utilizarlo para duplicar o multiplicar una lista. Por ejemplo:

mi_primera_lista = ["Lucio", "BocaNegra", "MariMisi", "Ramón"] * 3
print(mi_primera_lista[:])
# Resultado: ['Lucio', 'BocaNegra', 'MariMisi', 'Ramón', 'Lucio', 'BocaNegra', 'MariMisi', 'Ramón', 'Lucio', 'BocaNegra', 'MariMisi', 'Ramón']

El operador * multiplica la lista original tantas veces como indiques.

Estas herramientas básicas son esenciales para trabajar con listas en Python. Continuaremos explorando más conceptos en futuras entregas de este curso. En la próxima entrega de este curso de Python donde veremos Las Tuplas. ¡Hasta la próxima!

Scroll al inicio