Maison >développement back-end >Tutoriel Python >Pourquoi l'affectation à une tranche de liste Python modifie-t-elle la liste d'origine ?
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)
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!