Maison  >  Article  >  développement back-end  >  Comment modifier une liste au sein d'une fonction en Python : passage par référence ou modification sur place ?

Comment modifier une liste au sein d'une fonction en Python : passage par référence ou modification sur place ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-27 06:12:03736parcourir

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

Modifier une liste à l'intérieur d'une fonction

Lorsque vous travaillez avec des paramètres de liste dans des fonctions, les références passées à la fonction pointent vers la liste d'origine. Toutes les modifications apportées à la variable list_arg dans la fonction sont limitées à sa portée locale et n'affecteront pas la liste d'origine.

Pour contourner ce problème et modifier la liste d'origine, il faut attribuer directement des éléments à la liste. au lieu de réaffecter la liste entière à une nouvelle valeur. Voici un exemple :

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]

Dans ce code modifié, nous utilisons la notation slice list_arg[:] pour attribuer les éléments de list(a) à la liste d'origine, modifiant ainsi la liste en place.

Il est important de noter que même si les modifications sur place peuvent sembler pratiques, elles peuvent devenir difficiles à comprendre et peuvent prêter à confusion pour les développeurs qui gèrent le code. Les réaffectations explicites sont généralement préférées pour des raisons de clarté et de lisibilité.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn