Forum de mathématiques - Bibm@th.net
Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 01-03-2009 16:57:11
- tibo
- Membre expert
- Inscription : 23-01-2008
- Messages : 1 097
[Python] problème de liste
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?
A quoi sert une hyperbole?
----- A boire de l'hypersoupe pardi !
Hors ligne
#2 01-03-2009 17:28:33
Re : [Python] problème de liste
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...
Dernière modification par Lutcho74 (01-03-2009 17:47:38)
La seule façon raisonnable de vivre en ce bas monde, c'est en dehors des règles.
Hors ligne
#3 01-03-2009 17:41:01
- yoshi
- Modo Ferox
- Inscription : 20-11-2005
- Messages : 16 987
Re : [Python] problème de liste
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
@+
Arx Tarpeia Capitoli proxima...
Hors ligne
#4 10-05-2009 16:48:56
- Barbichu
- Membre actif
- Inscription : 15-12-2007
- Messages : 405
Re : [Python] problème de liste
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.
++
Barbichu
Hors ligne
Pages : 1