Bibm@th

Forum de mathématiques - Bibm@th.net

Bienvenue dans les forums du site BibM@th, des forums où on dit Bonjour (Bonsoir), Merci, S'il vous plaît...

Vous n'êtes pas identifié(e).

#1 01-03-2009 14:57:11

tibo
Membre actif
Inscription : 23-01-2008
Messages : 1 077

[Python] problème de liste

Bonjour,

le plus simple est que je vous montre mon problème

>>> L1=[1,2]
>>> 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 15:28:33

Lutcho74
Membre
Lieu : Vitrolles
Inscription : 22-12-2008
Messages : 136
Site Web

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 15: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 15:41:01

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 13 887

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

>>> a=2
>>> b=a
>>> print a,b
2 2
>>> a=3
>>> print a,b
3 2

2. Ca ne produit pas avec des chaînes :

>>> ch1="Bonjour !"
>>> 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 14: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

 a = b

, 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

Réponse rapide

Veuillez composer votre message et l'envoyer
Nom (obligatoire)

E-mail (obligatoire)

Message (obligatoire)

Programme anti-spam : Afin de lutter contre le spam, nous vous demandons de bien vouloir répondre à la question suivante. Après inscription sur le site, vous n'aurez plus à répondre à ces questions.

Quel est le résultat de l'opération suivante (donner le résultat en chiffres)?
quatre-vingt treize moins soixante huit
Système anti-bot

Faites glisser le curseur de gauche à droite pour activer le bouton de confirmation.

Attention : Vous devez activer Javascript dans votre navigateur pour utiliser le système anti-bot.

Pied de page des forums