Maison >développement back-end >Tutoriel Python >Pourquoi la modification d'une liste passée en paramètre dans une fonction n'affecte-t-elle pas la liste d'origine ?
Modifier des listes dans des fonctions
En programmation, il est courant de travailler avec des listes, en particulier dans les fonctions qui manipulent des données. Cependant, un problème survient lorsque vous tentez de modifier des listes passées en paramètres dans une fonction.
Considérez l'extrait de code suivant :
def function1(list_arg): a = function2() # returns an array of numbers list_arg = list(a) list1 = [0] * 5 function1(list1)
Vous pouvez vous attendre à ce que list1 soit modifié après avoir appelé function1, mais il reste inchangé. En effet, lors de l'attribution de quelque chose à la variable list_arg, cela pointe vers une nouvelle valeur. Cependant, la liste d'origine n'est pas affectée.
Pour surmonter ce problème, vous pouvez modifier les éléments de la liste d'origine :
def function1(list_arg): a = function2() # returns an array of numbers list_arg[:] = list(a)
L'utilisation de list_arg[:] remplace efficacement tous les éléments de la liste originale. Cependant, il convient de noter que des modifications sur place comme celle-ci peuvent prêter à confusion et ne constituent pas toujours la meilleure approche.
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!