Maison > développement back-end > Tutoriel Python > Comment fonctionne l'affectation de liste de Python et comment puis-je éviter un comportement inattendu lors de la modification de listes imbriquées ?

Comment fonctionne l'affectation de liste de Python et comment puis-je éviter un comportement inattendu lors de la modification de listes imbriquées ?

Mary-Kate Olsen
Libérer: 2024-11-29 01:10:11
original
969 Les gens l'ont consulté

How Does Python's List Assignment Work, and How Can I Avoid Unexpected Behavior When Modifying Nested Lists?

Comprendre l'affectation de listes en Python

En Python, les listes sont des objets mutables, ce qui signifie que leur contenu peut être modifié. Lors de l'affectation d'une liste à une autre variable, les deux variables font référence au même objet de liste sous-jacent. C'est ce qu'on appelle l'affectation par référence.

Problème de passage par référence

Ce comportement peut entraîner des conséquences inattendues lors de la modification de listes imbriquées. Par exemple, modifier une valeur dans « a » affectera également « b » puisqu'ils partagent le même objet de liste de sauvegarde :

a = ['help', 'copyright', 'credits', 'license']
b = a
b.append('XYZ')
print(a)  # ['help', 'copyright', 'credits', 'license', 'XYZ']
Copier après la connexion

Passer des listes par valeur

Pour transmettre une liste par valeur en Python, vous devez créer une copie de la liste d'origine. Vous pouvez le faire en utilisant l'opérateur de découpage :

b = a[:]
Copier après la connexion

Cela crée un nouvel objet de liste avec le même contenu que « a ». Désormais, l'ajout à 'b' n'affectera pas 'a' :

b.append('XYZ')
print(a)  # ['help', 'copyright', 'credits', 'license']
print(b)  # ['help', 'copyright', 'credits', 'license', 'XYZ']
Copier après la connexion

Conclusion

Comprendre l'affectation de liste en Python est crucial pour éviter un comportement involontaire lors de la modification d'imbrications listes. En utilisant l'opérateur de découpage, vous pouvez transmettre des listes par valeur et vous assurer que les modifications apportées à l'une ne se propagent pas aux autres.

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