"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como modificar uma lista dentro de uma função em Python: passagem por referência ou modificação no local?

Como modificar uma lista dentro de uma função em Python: passagem por referência ou modificação no local?

Publicado em 2024-11-08
Navegar:134

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

Modificando uma lista dentro de uma função

Ao trabalhar com parâmetros de lista em funções, as referências passadas para a função apontam para a lista original. Quaisquer modificações feitas na variável list_arg dentro da função estão confinadas ao seu escopo local e não afetarão a lista original.

Para contornar esse problema e modificar a lista original, é necessário atribuir elementos diretamente à lista em vez de reatribuir a lista inteira a um novo valor. Aqui está um exemplo:

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]

Neste código modificado, usamos a notação de fatia list_arg[:] para atribuir os elementos de list(a) à lista original, modificando efetivamente a lista no local.

É importante observar que, embora as modificações no local possam parecer convenientes, elas podem se tornar difíceis de compreender e podem causar confusão para os desenvolvedores que mantêm o código. Reatribuições explícitas são geralmente preferidas para maior clareza e legibilidade.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3