DEV Community

Cristian Fernando
Cristian Fernando

Posted on • Updated on

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

Explica este código Python

Dificultad: Intermedio

## Reto #40
frutas = ["manzana", "pera", "fresa"]
frutas2 = frutas
frutas2.append("banana")
print(frutas)
Enter fullscreen mode Exit fullscreen mode
  • A. ['manzana', 'pera', 'fresa']
  • B. ['manzana', 'pera', 'fresa', 'banana']
  • C. ['banana', 'manzana', 'pera', 'fresa']
  • D. Ninguna de las anteriores

Respuesta en el primer comentario.

Top comments (1)

Collapse
 
duxtech profile image
Cristian Fernando • Edited

Respuesta:

  • B. ['manzana', 'pera', 'fresa', 'banana']

En Python las listas se asignan por referencia, esto significa que su valor queda ligado a una dirección de memoria dentro de nuestro ordenador, por ende cuando hacemos frutas2 = frutas lo que copiamos en la variable frutas2 no es el valor de toda la lista frutas, sino que copiamos la referencia en memoria de la lista frutas.

En Python y a diferencia de otros lenguajes podemos verificar esto haciendo uso de la función id() que justamente nos regresa la dirección de memoria donde esta almacenada nuestra variable:

print(id(frutas)) # 140428447337024
print(id(frutas2)) # 140428447337024
Enter fullscreen mode Exit fullscreen mode

Vemos que la dirección en memoria de ambas variables es la misma y es por este motivo que al alterar la lista de frutas de la variable frutas2 los cambios también se ven reflejados en la variable original frutas.