Problème avec l'instruction del et les listes

Résolu
Ilioo Messages postés 42 Date d'inscription   Statut Membre Dernière intervention   -  
Ilioo Messages postés 42 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Je commence tout juste le python et j'aimerais vous demander de l'aide à propos d'un problème.
Dans une de mes fonctions, j'ai une liste en entrée. Au sein de ma fonction je veux bidouiller deux listes qui au départ sont identiques à celle de l'entrée.
Le problème, c'est que lorsque j'utilise l'instruction del sur une des deux listes, les deux listes sont touchées !
Voici un exemple pour illustrer :


J'aimerais savoir ce qui se passer, et surtout comment je peux contourner le problème.
Je précise que je code normalement sur Ubuntu, mais je suis souvent contrainte d'avancer sur Windows en parallèle.

Merci d'avance.

1 réponse

ElementW Messages postés 4814 Date d'inscription   Statut Contributeur Dernière intervention   1 223
 
'lut, tu viens de toucher a un problème inhérent a certains langages: les listes, en Python, sont passées par référence; autrement dit, quand on utilise une opération d'attribution, la liste n'est pas copiée, mais la variable voulue y est associée.
Ce n'est pas le cas d'autres types comme
float
ou
int
.
Il faut, pour la copier, soit passer par le constructeur de
list
:
a = [1, 2, 3]
b = list(a)
<...>
Soit l'opérateur de découpage, qui sans paramètre découpera la liste du début à la fin, la copiant, effectivement:
a = [1, 2, 3]
b = a[:]
<...>
0
Ilioo Messages postés 42 Date d'inscription   Statut Membre Dernière intervention   13
 
Merci beaucoup !! :)
0