Mutabilidad e Inmutabilidad en Python

  Mutabilidad vs Inmutabilidad

En Python, las variables pueden ser de tipo mutable o inmutable. La diferencia entre ambos radica en si su valor puede cambiar después de ser creado o no.

Objetos Mutables

Los objetos mutables son aquellos cuyo contenido se puede modificar sin cambiar su identidad. Algunos ejemplos comunes incluyen listas, diccionarios y conjuntos (sets).

Ejemplo con Listas

Las listas son mutables, lo que significa que puedes modificar sus elementos sin crear una nueva lista.

python
mi_lista = [1, 2, 3]
mi_lista[0] = 10
print(mi_lista)  

# Salida: [10, 2, 3]

Ejemplo con Diccionarios

python
mi_dict = {"nombre": "Brenda", "edad": 25}
mi_dict["edad"] = 26
print(mi_dict) 

# Salida: {"nombre": "Brenda", "edad": 26}

Ejemplo con Sets

Los conjuntos (sets) en Python son mutables, lo que significa que puedes agregar o eliminar elementos después de su creación.

python
mi_conjunto = {1, 2, 3}
mi_conjunto.add(4)  # Agregar un nuevo elemento
print(mi_conjunto)  

# Salida: {1, 2, 3, 4}


mi_conjunto.remove(2)  # Eliminar un elemento existente
print(mi_conjunto)  

# Salida: {1, 3, 4}

Objetos Inmutables

Los objetos inmutables no se pueden modificar después de ser creados. Esto incluye tipos como enteros, flotantes, cadenas y tuplas.

Ejemplo con Cadenas

Las cadenas de texto son inmutables. Cualquier “modificación” crea una nueva cadena.

python
mi_texto = "Hola"
mi_nuevo_texto = mi_texto + " Mundo"
print(mi_texto)
# Salida: "Hola"
print(mi_nuevo_texto)
# Salida: "Hola Mundo"

Ejemplo con Tuplas

python
mi_tupla = (1, 2, 3)
# mi_tupla[0] = 10  # Esto generará un error
print(mi_tupla)  

# Salida: (1, 2, 3)
  Ventajas y Desventajas

  • Objetos Mutables: Son útiles cuando se necesita modificar datos. Sin embargo, pueden generar problemas de seguridad y errores difíciles de detectar si no se controlan bien.
  • Objetos Inmutables: Son seguros y eficientes para datos que no requieren modificación, ya que pueden compartirse sin riesgo de cambios accidentales.

Comparación de Ejemplos

Para entender mejor la diferencia, observa lo que ocurre con una lista (mutable) y una tupla (inmutable):

python
# Lista mutable
mi_lista = [1, 2, 3]
otra_lista = mi_lista
mi_lista.append(4)
print(otra_lista) 
# Salida: [1, 2, 3, 4]


# Tupla inmutable
mi_tupla = (1, 2, 3)
otra_tupla = mi_tupla
mi_tupla = mi_tupla + (4,)
print(otra_tupla) 
# Salida: (1, 2, 3)
print(mi_tupla)    
# Salida: (1, 2, 3, 4)
  Conclusión

La mutabilidad es un concepto esencial en Python que afecta cómo se comportan los datos en tu programa. Usar objetos mutables o inmutables depende del contexto y los requerimientos de tu código.