"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo modificar una lista dentro de una función en Python: pasar por referencia o modificación in situ?

¿Cómo modificar una lista dentro de una función en Python: pasar por referencia o modificación in situ?

Publicado el 2024-11-08
Navegar:545

How to Modify a List Within a Function in Python: Pass by Reference or In-Place Modification?

Modificar una lista dentro de una función

Cuando se trabaja con parámetros de lista en funciones, las referencias pasadas a la función apuntan a la lista original. Cualquier modificación realizada a la variable list_arg dentro de la función se limita a su alcance local y no afectará la lista original.

Para evitar este problema y modificar la lista original, es necesario asignar elementos directamente a la lista en lugar de reasignar toda la lista a un nuevo valor. Aquí hay un ejemplo:

def function1(list_arg):
   a = function2()    # function2 returns an array of numbers
   list_arg[:] = list(a)

list1 = [0] * 5
function1(list1)
print(list1)  # [1, 2, 3, 4, 5]

En este código modificado, usamos la notación de sector list_arg[:] para asignar los elementos de list(a) a la lista original, modificar eficazmente la lista existente.

Es importante tener en cuenta que, si bien las modificaciones locales pueden parecer convenientes, pueden resultar difíciles de comprender y pueden generar confusión para los desarrolladores que mantienen el código. Generalmente se prefieren las reasignaciones explícitas por razones de claridad y legibilidad.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3