En este artículo, aprenderemos sobre listas y tuplas en Python, dos de las estructuras de datos más utilizadas en programación. Estas herramientas te permitirán almacenar, organizar y manipular grandes cantidades de información de manera eficiente. ¡Vamos a explorarlas paso a paso!

📋 ¿Qué son las listas y tuplas en Python?

Las listas y tuplas son zonas de almacenamiento contiguo donde podemos guardar múltiples elementos. Son como 📦 “cajas” donde puedes almacenar varios datos dentro de una misma variable.

Podemos imaginar las listas y tuplas como la lista del supermercado donde colocamos un elemento por cada renglón de la hoja.

Imagina que cada renglón está numerado y que podemos hacer referencia a él por este número que comienza contando desde cero a infinito. O bien refiriéndonos al elemento en sí. Pero cada elemento ocupa un renglón.

Listas en Python

También otra referencia a las listas puede ser un tren con vagones, donde cada vagón tiene un número que hace referencia a él y cargará un elemento en cada vagón.

Por ejemplo:

# -*- coding: utf-8 -*-
# Listas y Tuplas: Acceder a un elemento de la lista
# https://pythones.net

Tren = ['Carbón'], ['Oro'], ['Leña']

# Acceder al Oro
Tren[1]

Resultado:  [‘Oro’]

Listas y Tuplas en Python

Imagina que si quisiéramos obtener el ‘Oro’ podríamos hacerlo o bien dirigiéndonos al elemento en caso de conocerlo o bien a dicho vagón, que en este caso sería el número “1” porque en las listas y tuplas se comienza a contar a partir de cero (“0”). Las listas y tuplas tienen lo que llamamos “Índice” (index) y en python comienza a contar siempre desde el cero.

-Entonces ¿qué número tendría cada vagón?

-Pues, “Tren” sería el nombre del objeto (Lista) y el primer elemento sería el “Carbón” con un índice CERO, seguido por el “Oro” con el índice UNO, y finalmente la “Leña” con el índice DOS.

Tren contiene 3 elementos, pero son numerados (0, 1, 2)

 

➡️ Acceder a un elemento de la lista

Una de las operaciones más comunes al trabajar con listas en Python es acceder a un elemento específico. Esto se logra utilizando el índice del elemento dentro de la lista. Recuerda que en Python, los índices comienzan desde 0, no desde 1.

 

Ejemplo: Acceder a un elemento por su índice

Supongamos que tenemos la siguiente lista:

# -*- coding: utf-8 -*-
# Listas y Tuplas: Accediendo a elemento de la lista
# https://pythones.net

frutas = ["manzana", "banana", "cereza", "uva"]

#Si queremos mostrar el segundo elemento nos bastará con ingresar:

frutas[1]

Resultado:  ‘manzana’

📦 Almacenar un elemento en otra variable

Una vez que accedes a un elemento de la lista, puedes almacenarlo en otra variable para usarlo posteriormente. Esto es útil cuando necesitas trabajar con ese valor sin modificar la lista original.

Si queremos acceder y almacenar el primer elemento (índice 0), lo hacemos de la siguiente manera:

# -*- coding: utf-8 -*-
# Listas y Tuplas: Almacenar un elemento de la lista en una variable
# https://pythones.net

#Creamos la lista
frutas = ["manzana", "banana", "cereza", "uva"]

#Creamos una variable "primera_fruta" y le asignamos el primer elemento de la lista
primera_fruta = frutas[0]

#Imprimimos la variable
print(primera_fruta)

Resultado: ‘manzana’

De la misma forma, podemos acceder a otros elementos y almacenarlos usando sus respectivos índices:

# -*- coding: utf-8 -*-
# Listas y Tuplas: Almacenar un elemento de la lista en una variable
# https://pythones.net

#Creamos la lista
frutas = ["manzana", "banana", "cereza", "uva"]

#Creamos una variable "primera_fruta" y le asignamos el primer elemento de la lista
primera_fruta = frutas[0]

#De la misma forma, podemos acceder a otros elementos usando sus respectivos índices:
segunda_fruta = frutas[1] # Accede a "banana" y la almacena en la variable
tercera_fruta = frutas[2] # Accede a "cereza" y la almacena en la variable

#Imprimimos las dos variables
print(segunda_fruta, tercera_fruta)

Resultado: banana cereza

 

⚠️ Importante: Manejo de índices negativos

En Python, también puedes usar índices negativos para acceder a elementos desde el final de la lista. Por ejemplo:

# -*- coding: utf-8 -*-
# Listas y Tuplas: Almacenar un elemento de la lista en una variable, indice negativo
# https://pythones.net

#Creamos la lista
frutas = ["manzana", "banana", "cereza", "uva"]

#Creamos una variable "primera_fruta" y le asignamos el primer elemento de la lista
primera_fruta = frutas[0]

#Usamos indices negativo, en caso de que una lista sea demasiado larga:

ultima_fruta = frutas[-1] # Accede a "uva"

penultima_fruta = frutas[-2] # Accede a "cereza"

#Imprimimos las dos variables
print(ultima_fruta, penultima_fruta)

Resultado: uva cereza

 

🌟 Consejo práctico

Al acceder a elementos de una lista, asegúrate de que el índice que usas esté dentro del rango válido. Si intentas acceder a un índice que no existe, Python lanzará un error IndexError:

# -*- coding: utf-8 -*-
# Listas y Tuplas: Considerar que el indice al que se intenta acceder exista
# https://pythones.net

frutas = ["manzana", "banana", "cereza"]


frutas[5] # ¡Error! El índice 5 no existe

Listas y Tuplas ejemplo de error index out of range

 

Tuplas en Python

Las tuplas son útiles cuando necesitas almacenar datos que no deben cambiar durante la ejecución del programa. Por ejemplo:

  • Coordenadas geográficas: Las coordenadas (latitud, longitud) son valores fijos que no deben modificarse.
  • Días de la semana: Los nombres de los días son constantes y no cambian.
  • Colores RGB: Los valores de rojo, verde y azul en un color son fijos.

Aunque las tuplas son inmutables, tienen algunos métodos útiles:

  • count(): Cuenta cuántas veces aparece un elemento en la tupla.
  • index(): Encuentra el índice de la primera aparición de un elemento.

Ejemplo:

# -*- coding: utf-8 -*-
# Tuplas: Conocer el indice de un elemento en particular
# https://pythones.net

coordenadas = (10.5, 20.3, 10.5)


print(coordenadas.count(10.5)) # Resultado: 2


print(coordenadas.index(20.3)) # Resultado: 1

Resultado: 2 1

 

🆚 Diferencias entre Listas y Tuplas

La principal diferencia entre ellas es que:

  • Las listas son mutables (pueden modificarse).
  • Las tuplas son inmutables (no pueden modificarse después de ser creadas).
⚠️ Aclaración sobre la inmutabilidad de las tuplas

Cuando decimos que las tuplas no son mutables  (inmutables) nos referimos a que no podemos modificar un elemento de ella en tiempo de ejecución. Es decir, mientras el programa está corriendo no podemos editarlo ni modificar el orden de los elementos sin construir otra variable y hacer una especie de bypass (Una mala práctica porque para ello hubiéramos utilizado una lista).

Las tuplas las solemos usar como si fueran una pequeña base de datos que contiene datos que nunca se modifican y que nos conviene ordenar por índice para luego hacer una referencia a ellos de manera más sencilla. Como dijimos podrían ser por ejemplo código de colores, imagina que en vez de estar revisando cada código de color puedas llamar directamente a la tupla “rojos(1)” de esta forma nos facilita ordenar una tupla de tonalidades del color en cuestión. O días de la semana, o numeraciones específicas que sabremos nunca cambian.

⚠️ La sintaxis de listas y tuplas es distinta

Veamos ejemplos básicos de cómo crear listas y tuplas en Python:

# -*- coding: utf-8 -*-
# Listas y Tuplas en Python 
# https://pythones.net

# Crear una lista
frutas = ["manzana", "banana", "cereza"]

# Crear una tupla
coordenadas = (10.5, 20.3)

 

⚙️ Métodos para modificar listas

Como las listas son mutables, podemos modificarlas utilizando métodos como append, insert, extend, pop y remove.

💡 Recordemos

Recordemos que los métodos son las acciones que pueden realizar los objetos. Y en python todo es un objeto que tiene diferentes métodos, aquí aprenderemos algunos de los más utilizados, pero si quieres conocer todos los métodos de las listas y tuplas no olvides que puedes utilizar la función dir()

# -*- coding: utf-8 -*-
# Listas y Tuplas en Python 
# https://pythones.net

# Crear una lista de ejemplo
mi_lista = [1, 2, 3]

# Usar dir() para ver todos los métodos y atributos
print(dir(mi_lista))

El resultado se ve así:

Métodos de Listas en Python

 

👁️‍🗨️ Todos los métodos de las listas

Pero vamos a ordenarlo y comprender un poco de qué van estos métodos:

  • append(elemento): Agrega un elemento al final de la lista.
  • clear(): Elimina todos los elementos de la lista, dejándola vacía.
  • copy(): Crea una copia superficial de la lista.
  • count(valor): Cuenta cuántas veces aparece un valor específico en la lista.
  • extend(iterable): Agrega los elementos de un iterable (como otra lista) al final de la lista.
  • index(valor): Devuelve el índice de la primera aparición de un valor en la lista.
  • insert(índice, elemento): Inserta un elemento en una posición específica de la lista.
  • pop(índice): Elimina y devuelve el elemento en el índice especificado. Si no se indica el índice, elimina el último elemento.
  • remove(valor): Elimina la primera aparición de un valor específico en la lista.
  • reverse(): Invierte el orden de los elementos en la lista.
  • sort(): Ordena los elementos de la lista en orden ascendente (o según un criterio personalizado).

Te recomiendo experimentar por ti mismo en tu cuaderno Jupyter con cada uno de estos métodos.

A continuación, te muestro algunos ejemplos prácticos de estos métodos que nos permiten modificar las listas:

✅ Agregar elementos con append e insert

Append: Agrega un elemento al final de la lista.

# -*- coding: utf-8 -*-
# Listas y Tuplas en Python 
# https://pythones.net

List1 = ['Marcos', 'Roberto', 'Celeste', 'Margarita']
print(List1)  # Resultado: ['Marcos', 'Roberto', 'Celeste', 'Margarita']

List1.append('Alex')
print(List1)  # Resultado: ['Marcos', 'Roberto', 'Celeste', 'Margarita', 'Alex']

En este caso estamos agregando a la lista el elemento ‘Alex’, y se añade al final de la lista, pero también podemos añadirlo en la posición que deseamos. Es importante tener en cuenta que en una lista podemos añadir cualquier elemento sea de tipo Numérico, Texto, Booleano, pero es importante mantener una consistencia de los datos.

Insert: Inserta un elemento en una posición específica.

# -*- coding: utf-8 -*-
# Listas y Tuplas en Python 
# https://pythones.net

List1 = ['Marcos', 'Roberto', 'Celeste', 'Margarita']
print(List1)  # Resultado: ['Marcos', 'Roberto', 'Celeste', 'Margarita']

List1.insert(1, 'Alex')
print(List1)  # Resultado: ['Marcos', 'Alex', 'Roberto', 'Celeste', 'Margarita']

 

❌ Eliminar elementos con pop y remove

Pop: Elimina un elemento por su índice. En este caso vamos a eliminar el elemento conociendo su índice, pero siempre recuerda que los índices debemos comenzar a contar a partir de cero.

# -*- coding: utf-8 -*-
# Listas y Tuplas en Python 
# https://pythones.net

List1 = ['Marcos', 'Roberto', 'Celeste', 'Margarita']
print(List1)  # Resultado: ['Marcos', 'Roberto', 'Celeste', 'Margarita']

List1.pop(1)
print(List1)  # Resultado: ['Marcos', 'Celeste', 'Margarita']

Remove: Elimina un elemento por su valor.

# -*- coding: utf-8 -*-
# Listas y Tuplas en Python 
# https://pythones.net

List1 = ['Marcos', 'Roberto', 'Celeste', 'Margarita']
print(List1)  # Resultado: ['Marcos', 'Roberto', 'Celeste', 'Margarita']

List1.remove('Roberto')
print(List1)  # Resultado: ['Marcos', 'Celeste', 'Margarita']

 

✂️ Slice: Cortando listas y tuplas

El término Slice (rebanada en español) se refiere a un “pedazo” o “parte” de una lista o tupla. Para obtener un slice, especificamos un índice de inicio y un índice de final:

# -*- coding: utf-8 -*-
# Listas y Tuplas en Python 
# https://pythones.net

Numeros = [111, 222, 333, 444, 555]
print(Numeros[0:3])  # Resultado: [111, 222, 333]

 

🔢 El tipo Range

Además de las Listas y Tuplas, en python tenemos el elemento Range() que nos permite crear un rango de números según especifiquemos el comienzo y final, esto parece una función pero es en realidad un tipo de dato también que se incorporó para facilitar la creación de patrones numéricos. Podemos utilizar la función built-inlist()” que convierte los elementos que ingresemos como argumentos en listas automáticamente.

El tipo range() genera una sucesión de números, pero no es visible hasta que lo convertimos en una lista usando la función list():

# -*- coding: utf-8 -*-
# Listas y Tuplas en Python 
# https://pythones.net

x = list(range(5))
print(x)  # Resultado: [0, 1, 2, 3, 4]

📌 Código adicional para practicar

👀 Ejemplo interactivo en Python

# -*- coding: utf-8 -*-
# Listas y Tuplas en Python 
# https://pythones.net

# Crear una lista
frutas = ["manzana", "banana", "cereza"]

# Agregar un elemento
frutas.append("uva")

# Eliminar un elemento
frutas.remove("banana")

# Mostrar un slice
print(frutas[0:2])  # Resultado: ['manzana', 'cereza']

✔️CheckList (que no se te pase nada)

 

  • Listas
    • Sintaxis: Corchetes [ ].
    • Elementos: Cualquier tipo (números, texto, booleanos).
    • Texto: Entre comillas simples (‘ ‘) o dobles (” “).
    • Separación: Elementos separados por comas ( , ).
    • Mutabilidad: Mutables (se pueden modificar).
    • Índices: Comienzan desde 0.
    • Acceso: Usar corchetes [ ] con el índice.
    • Métodos: append, remove, insert, pop, etc.
    • Vacía: Se puede crear una lista vacía.
    • Ordenadas: Mantienen el orden de los elementos.
  • Tuplas
    • Sintaxis: Paréntesis ( ).
    • Elementos: Cualquier tipo (números, texto, booleanos).
    • Texto: Entre comillas simples (‘ ‘) o dobles (” “).
    • Separación: Elementos separados por comas ( , ).
    • Inmutabilidad: Inmutables (no se pueden modificar).
    • Índices: Comienzan desde 0.
    • Acceso: Usar corchetes [ ] con el índice.
    • Métodos: No tienen métodos de modificación.
    • Obligatorio: Deben definirse con todos sus elementos.
    • Ordenadas: Mantienen el orden de los elementos.
  • Diferencias clave
    • Mutabilidad: Listas mutables; tuplas inmutables.
    • Símbolos: Listas usan [ ]; tuplas usan ( ).
    • Modificación: Listas permiten cambios; tuplas no.
    • Uso práctico: Listas para datos dinámicos; tuplas para datos estáticos.
    • Rendimiento: Tuplas son más rápidas y ocupan menos memoria.

🌟 Conclusión

En este artículo, aprendimos sobre listas y tuplas en Python, sus diferencias y cómo usar métodos como append, insert, pop y remove para manipularlas.

También exploramos cómo utilizar slices para acceder a partes específicas de una lista o tupla.

Esta guía es solo el comienzo. En próximos posts, profundizaremos en otras estructuras de datos como diccionarios, conjuntos y DataFrames. ¡No te los pierdas! 🚀

¿Tienes dudas? Déjalas en los comentarios y estaré encantado de ayudarte. ¡Hasta la próxima entrada! 👋

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio