DEV Community

Cristian Fernando
Cristian Fernando

Posted on • Edited 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.

Eliminate Context Switching and Maximize Productivity

Pieces.app

Pieces Copilot is your personalized workflow assistant, working alongside your favorite apps. Ask questions about entire repositories, generate contextualized code, save and reuse useful snippets, and streamline your development process.

Learn more