Maison > développement back-end > Tutoriel Python > Pourquoi l'affectation à une tranche de liste Python modifie-t-elle la liste d'origine ?

Pourquoi l'affectation à une tranche de liste Python modifie-t-elle la liste d'origine ?

Linda Hamilton
Libérer: 2024-12-13 21:51:13
original
853 Les gens l'ont consulté

Why Does Assigning to a Python List Slice Modify the Original List?

Comprendre les mécanismes d'affectation aux tranches de liste

La documentation Python indique clairement que le découpage d'une liste crée une nouvelle liste. Cependant, il peut être déroutant de constater que l’attribution de valeurs à une tranche de liste modifie la liste d’origine. Cet article dévoile les mécanismes derrière ce comportement et répond aux questions associées :

1. Les objets renvoyés par découpage peuvent-ils apparaître sur le côté gauche d'une expression ?

Découper une liste produit en effet une nouvelle liste. Toutefois, l'affectation à une tranche effectue une opération différente appelée « affectation de tranche ». Cette opération écrase la tranche spécifiée de la liste d'origine avec les valeurs attribuées.

2. Pourquoi la liste originale est-elle modifiée si le découpage crée une nouvelle liste ?

L'opération d'affectation de tranche s'effectue directement sur la liste originale. Malgré la création d'une nouvelle liste lors du découpage, l'affectation agit comme une modification directe des éléments de la liste d'origine dans la plage spécifiée.

Pour clarifier, considérons l'exemple :

a = [1, 2, 3]
a[0:2] = [4, 5]
print(a)
Copier après la connexion

Dans ce scénario, découper a[0:2] crée une nouvelle liste, mais a[0:2] = [4, 5] remplace les éléments aux indices 0 et 1 de la liste d'origine. a avec 4 et 5, respectivement. La sortie [4, 5, 3] confirme cette modification de la liste originale.

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