Modifier une liste au sein d'une fonction
Lorsque vous travaillez avec des listes au sein de fonctions, il est important de comprendre le concept de références et d'attribution de valeur. En Python, les paramètres de liste transmis aux fonctions reçoivent une référence à la liste d'origine, pas une copie. La modification de la liste à l'intérieur de la fonction modifie directement la liste d'origine.
Illustration du problème
Considérez le code suivant :
<code class="python">def function1(list_arg): a = function2() # returns an array of numbers list_arg = list(a) # Assign a new list to list_arg list1 = [0] * 5 function1(list1) print(list1) # Output: [0, 0, 0, 0, 0]</code>
Dans cet exemple, nous avions l'intention de modifier la liste passée list1 avec les éléments du tableau a. Cependant, le code ne fonctionne pas car, dans la ligne list_arg = list(a), nous attribuons une nouvelle liste à list_arg, ce qui rompt effectivement le lien vers list1.
Solution : Modifier Éléments de la liste
Pour modifier correctement la liste d'origine, nous devons attribuer les nouveaux éléments à ses éléments individuels au lieu de réaffecter la liste entière. Ceci peut être réalisé en utilisant le découpage :
<code class="python">list_arg[:] = list(a)</code>
Cela attribue le contenu de list(a) à tous les éléments de list_arg. Le découpage [:] sélectionne toute la plage d'éléments dans list_arg.
Conclusion
Lorsque vous travaillez avec des listes dans des fonctions, n'oubliez pas que la réaffectation remplace la liste existante, tout en modifiant elements préserve la liste originale. Utilisez le découpage pour modifier les éléments d'une liste, en vous assurant que la liste d'origine reste intacte.
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!