DEV Community

Cover image for Ibuprofeno.py💊| #68: Explica este código Python
Cristian Fernando
Cristian Fernando

Posted on

Ibuprofeno.py💊| #68: Explica este código Python

Explica este código Python

Dificultad: Intermedio

## Reto #68
my_dict = {"a":1, "b":2}
copy_my_dict = my_dict
my_dict["c"] = 3
print(copy_my_dict)
Enter fullscreen mode Exit fullscreen mode

👉 A. TypeError
👉 B. {'a': 1, 'b': 2, 'c': 3}
👉 C. {'a': 1, 'b': 2}
👉 D. Ninguna de las anteriores


Respuesta en el primer comentario.

Top comments (1)

Collapse
 
duxtech profile image
Cristian Fernando

Respuesta:
👉 B. {'a': 1, 'b': 2, 'c': 3}

En Python los diccionarios se manipulan por referencia, esto quiere decir que copy_my_dict no es un nuevo diccionario sino que solo es una copia de la referencia al diccionario orinal my_dict, dicho de otra manera, cualquier cambio que se haga a la copia también se hará a al original por que comparten la misma dirección de memoria.

Para solucionar esto podemos hacer uso del método copy:

my_dict = {"a":1, "b":2}
copy_my_dict = my_dict.copy()
my_dict["c"] = 3
print(copy_my_dict) ## {'a': 1, 'b': 2}
Enter fullscreen mode Exit fullscreen mode

De esta manera el cambio solo se ve reflejado en la copia y no así en la variable original.