Las listas en Python son una de las estructuras de datos más usadas: permiten agrupar valores heterogéneos, modificar elementos y escribir código más legible. Aquí verás cómo inicializarlas, mutarlas, iterarlas y copiarlas sin efectos inesperados, con ejemplos claros y prácticos.
¿Qué son las listas en Python y por qué importan?
Las listas son una secuencia mutable que puede contener cualquier tipo de dato: enteros, strings, objetos o incluso otras listas. Al crear listas de listas, puedes construir matrices para representar datos en dos o más dimensiones. A diferencia de los strings, que son inmutables, las listas permiten cambiar sus elementos por índice, agregar o eliminar valores y recorrerlos con un for loop.
Hacen el desarrollo más sofisticado, legible y fácil de implementar.
Soportan tipos heterogéneos en una sola estructura.
Se usan de forma constante durante la carrera como programador.
¿Qué diferencia a listas y strings como secuencias?
Una lista puede mezclar tipos: números, textos y otras listas.
Un string es inmutable: no permite asignación por índice.
Una lista es mutable: puedes reasignar elementos por índice.
Ejemplos en Python:
# Inicialización literal con *square brackets*countries =["México","Venezuela","Colombia","Argentina"]ages =[12,18,24,34,50]# Inicialización funcional con la *built in function* list()empty =list()# Lista heterogénea (receta): nombre y cantidadesreceta =["ensalada",2,"lechugas",5,"jitomates"]# Mutabilidad: reasignación por índicecountries[0]="Ecuador"print(countries)# ["Ecuador", "Venezuela", "Colombia", "Argentina"]# Inmutabilidad de string: esto lanza un TypeErrorname ="David"# name[0] = "d" # TypeError: los strings no permiten asignación por índice
¿Cómo se inicializan e iteran listas en Python?
Puedes crear listas de forma literal con [] o con list(). Una vez en memoria, las recorres con un for simple y legible. A diferencia de range, que produce un iterador, una lista ya contiene los valores en memoria.
# Literal vs funcionalnums_literal =[1,2,3]nums_funcional =list((1,2,3))# a partir de un iterable# Iteración sobre una lista existente en memoriafor country in countries:print(country)# Comparación conceptual con range (range genera un iterador)for n inrange(5):print(n)
Inicialización literal: clara y directa.
Inicialización funcional: útil al convertir otros iterables.
For loop en listas: sintaxis concisa y legible.
¿Qué significa que las listas sean referenciales y cómo copiar sin efectos secundarios?
En Python, las listas son referenciales: almacenan referencias a los objetos en memoria, no los objetos en sí. Por eso, dos listas con los mismos valores son objetos distintos; su identidad en memoria difiere. Con strings iguales, la identidad puede coincidir según lo mostrado con la built in functionID.
¿Qué es un alias y por qué puede causar bugs?
Asignar una lista a otra variable crea un alias: ambas variables apuntan a la misma lista. Modificar una, modifica la otra.
countries =["México","Venezuela","Colombia","Argentina"]global_countries = countries # alias: misma referenciacountries[0]="Guatemala"print(countries)# ["Guatemala", "Venezuela", "Colombia", "Argentina"]print(global_countries)# También cambia: misma lista en memoria
Alias: reasignación de la referencia, no copia de contenido.
Efecto secundario: cambios inesperados en múltiples variables.
¿Cómo copiar una lista de forma segura con el módulo copy?
Para evitar efectos colaterales, usa el módulo copy y crea una copia nueva.
import copy
countries =["México","Venezuela","Colombia","Argentina"]# Copia segura (nueva lista con los mismos valores)global_countries = copy.copy(countries)countries[0]="Honduras"print(countries)# ["Honduras", "Venezuela", "Colombia", "Argentina"]print(global_countries)# ["México", "Venezuela", "Colombia", "Argentina"]
Listas con mismos valores pueden vivir en direcciones distintas de memoria.
Con alias, ambas variables comparten la misma lista.
Con copy, cada variable mantiene su propia lista.
¿Te quedó alguna duda sobre mutabilidad, alias o el for loop en listas? Comparte tu pregunta y cuéntame qué casos prácticos quieres explorar.