Explica este código Python
Dificultad: Intermedio
## Reto #31
x = [10, 20]
def fn(entrada):
entrada.append(30)
return entrada
fn(x)
print(x) # 🤔
- A.
[10, 20, 30]
- B.
[10, 20]
- C.
[30]
- D.
None
Respuesta en el primer comentario.
Top comments (2)
Respuesta:
[10, 20, 30]
En Python tanto las listas como los diccionarios son pasados a las funciones por referencia, esto significa que no se crea un copia del valor sino que se almacena en una solo dirección de memoria.
En este caso al llamar a la función con la lista
[10, 20]
como argumento, esta misma la manipula transformandola en[10, 20, 30]
, este cambio se ve reflejado también en la variablex
que esta fuera de la función justamente por que su referencia en memoria es la misma.Podemos ver esto de una manera mas concreta haciendo uso de la función
id
de Python que nos regresa justamente la dirección en memoria en la que esta almacenada una variable:A