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 ?

Pourquoi la modification d'une liste passée en paramètre dans une fonction n'affecte-t-elle pas la liste d'origine ?

Patricia Arquette
Libérer: 2024-10-27 01:12:03
original
721 Les gens l'ont consulté

Why Does Modifying a List Passed as a Parameter in a Function Not Affect the Original List?

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)
Copier après la connexion

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)
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal