Python : transmission de listes par valeur ou référence
En Python, la compréhension des affectations de variables est cruciale. Lors de l'attribution de listes, le comportement par défaut est le passage par référence, ce qui signifie que les variables d'origine et affectées partagent le même objet sous-jacent en mémoire. Cela peut entraîner des modifications inattendues, comme démontré ci-dessous :
a = ['help', 'copyright', 'credits', 'license'] b = a b.append('XYZ') print(b) # Output: ['help', 'copyright', 'credits', 'license', 'XYZ'] print(a) # Output: ['help', 'copyright', 'credits', 'license', 'XYZ']
Dans cet exemple, ajouter « XYZ » à « b » affecte également « a » car ils font référence au même objet en mémoire. Pour éviter ce comportement et créer une véritable copie de la liste, vous devez utiliser l'affectation de découpage de Python :
b = a[:]
Cette opération crée un nouvel objet de liste en mémoire, indépendant de la liste d'origine. Par conséquent, toute modification apportée à « b » n'affectera pas « a ».
En résumé, comprendre le mécanisme de passage par référence de Python est essentiel pour travailler avec des objets mutables tels que des listes. En utilisant l'affectation de découpage, vous pouvez créer des copies de listes et vous assurer que leurs valeurs ne sont pas affectées par les modifications ultérieures.
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!