Forum de mathématiques - Bibm@th.net
Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
- Accueil
- » Programmation
- » [Python] problème de liste
- » Répondre
Répondre
Résumé de la discussion (messages les plus récents en premier)
- Barbichu
- 10-05-2009 15:48:56
Salut,
je n'avais pas vu non plus ce topic.
Lorsqu'on fait
, on dit à python que b désigne le même objet que celui que désigne a.
Donc si on modifie b, on modifie a, quelque soit l'objet, (y compris les entiers et les strings, cf [*]).
Si on regarde l'exemple de yoshi, quand il affecte une nouvelle valeur à une variable, il crée en fait un nouvel objet (le membre droit de l'affectaction), et demande à la variable d'y réferer. Par contre, si dans son exemple sur les chaines de caractères, yoshi avait modifié la variable ch1 au lieu de la réaffecter, ch2 aurait aussi changé, ... [*] sauf qu'en python on ne peut changer la valeur d'un int, ou d'une string.
++
- yoshi
- 01-03-2009 16:41:01
Re,
C'est probablement lié aux listes (et aux listes de listes) :
1. Ca ne se produit pas avec des nombres
>>> b=a
>>> print a,b
2 2
>>> a=3
>>> print a,b
3 2
2. Ca ne produit pas avec des chaînes :
>>> ch2=ch1
>>> print ch1,ch2
Bonjour ! Bonjour !
>>> ch1="Bonsoir !"
>>> print ch1,ch2
Bonsoir ! Bonjour !
Ca se produit également si tu changes L2 au lieu de L1
@+
- Lutcho74
- 01-03-2009 16:28:33
Salut,
A mon avis c'est parce que tu as dit que L2=L1 donc chaque changement que tu donne à une des deux listes affecte également l'autre...j'en suis pas sur à 100% mais je pense que c'est ça.
@+
[EDIT] Oui c'est bien ça je viens de tester pour être sûr et donc voilà c'est sûr...
- tibo
- 01-03-2009 15:57:11
Bonjour,
le plus simple est que je vous montre mon problème
>>> L2=L1
>>> L1
[1, 2]
>>> L2
[1, 2]
>>> L2[0]=2
>>> L1
[2, 2]
>>> L2
[2, 2]
>>>
pourquoi L1 change aussi quand je change L2?