DEV Community

Bryan Elias Herrera
Bryan Elias Herrera

Posted on

🚀 Descifrando el Enigma de la Memoria en Programación con python

¡Hola de nuevo, amantes de la programación! 🎉

Hoy, vamos a adentrarnos en el fascinante mundo de la memoria en la programación. Te sorprendería cuánto podemos optimizar nuestros programas simplemente comprendiendo cómo funcionan las cosas bajo el capó.

La memoria en una computadora es donde se almacenan todos los datos mientras tu programa se está ejecutando. Cuando creas una variable en tu código, estás solicitando un pequeño espacio en la memoria para almacenar un valor.

Variables y Asignaciones

Comenzaremos con lo básico. Mira el siguiente código en Python:

a = 10
b = a
Enter fullscreen mode Exit fullscreen mode

Aquí, cuando decimos a = 10, estamos almacenando el valor 10 en la memoria y a es básicamente una referencia a ese lugar en la memoria. Cuando decimos b = a, b ahora apunta al mismo lugar que a. Así que, si cambiamos el valor de a, b permanecerá como está, porque estamos creando un nuevo espacio en la memoria para el nuevo valor de a.

a = 20
print(a) # Imprime: 20
print(b) # Imprime: 10
Enter fullscreen mode Exit fullscreen mode

Listas

Las cosas se ponen más interesantes con las estructuras de datos como las listas. Mira el siguiente código:

lista1 = [1, 2, 3, 4, 5]
lista2 = lista1
Enter fullscreen mode Exit fullscreen mode

Aquí, lista1 y lista2 apuntan a la misma lista en la memoria. Así que, si cambias un elemento de lista1, ese cambio se verá reflejado en lista2 también.

lista1[0] = 10
print(lista1) # Imprime: [10, 2, 3, 4, 5]
print(lista2) # Imprime: [10, 2, 3, 4, 5]
Enter fullscreen mode Exit fullscreen mode

Si quieres que lista2 sea una copia de lista1 pero no apunte al mismo objeto, necesitas crear una copia de la lista, lo cual puedes hacer con el método .copy() o cortando la lista ([:]).

lista2 = lista1.copy()
# o
lista2 = lista1[:]
Enter fullscreen mode Exit fullscreen mode

Funciones y memoria

Cuando pasas una variable a una función, Python pasará ese valor, creando una nueva referencia a ese lugar en la memoria. Para variables simples como enteros o flotantes, esto no tiene mucho efecto. Pero para las listas, si modificas la lista dentro de la función, esos cambios se verán reflejados en la lista original.

def agregar_elemento(lista):
    lista.append(6)

lista1 = [1, 2, 3, 4, 5]
agregar_elemento(lista1)
print(lista1) # Imprime: [1, 2, 3, 4, 5, 6]
Enter fullscreen mode Exit fullscreen mode

Entender cómo funciona la memoria puede ayudarte a escribir código más limpio y eficiente. Te permite prever cómo se comportarán tus variables y funciones, especialmente cuando trabajas con estructuras de datos más grandes. Recuerda, un buen programador no solo hace que las cosas funcionen, sino que también se esfuerza por hacer que su código sea fácil de leer y eficiente.

¡Hasta la próxima, y feliz codificación! 👩‍💻👨‍💻💻`

Top comments (0)