Maison > développement back-end > Tutoriel Python > Listes Python : passage par valeur ou passage par référence ?

Listes Python : passage par valeur ou passage par référence ?

Linda Hamilton
Libérer: 2024-11-28 19:44:12
original
764 Les gens l'ont consulté

Python Lists: Pass by Value or Pass by Reference?

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

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[:]
Copier après la connexion

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!

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