IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Affectation et ajout dans deux listes


Sujet :

Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Mars 2021
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2021
    Messages : 2
    Par défaut Affectation et ajout dans deux listes
    Bonjour à tous,

    Je suis confronté à une problème que je trouve étonnant, mais peut être n'ai-je pas compris un truc....
    Je suis en python 3.8.2, j'ai le programme suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    L=[[5,[]]]
    dL=L[len(L)-1]
    s_1=dL[1]
    s_2=dL[1]
    print(s_1,"/",s_2)
    s_1.append(1)
    print(s_1,"/",s_2)      
    s_2.append(2)
    print(s_1,"/",s_2)
    Quand je l'exécute, j'obtiens;

    [] / []
    [1] / [1]
    [1, 2] / [1, 2]
    Je m'attendrais plutôt à avoir :
    [] / []
    [1] / []
    [1] / [2]
    Quelqu'un peut-il m'expliquer svp ?
    Merci de votre aide !

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 683
    Par défaut
    Salut,

    Un peu de magie:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    >>> A = []
    >>> B, C = A, A
    >>> print(B, C)
    [] []
    >>> A.append('x')
    >>> print(B, C)
    ['x'] ['x']
    >>>
    A, B et C sont des références au même objet liste.
    Si je modifie la liste, on verra la même chose via les différents chemins pris pour y accéder (c'est un seul et même objet).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Candidat au Club
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Mars 2021
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2021
    Messages : 2
    Par défaut
    Merci de ta réponse rapide. Je me doutais bien un peu de la réponse...
    Mais comment, dans ces conditions, avoir deux nouvelles listes s_1 et s_2 qui ne pointent pas sur la liste initiale et que l'on peut donc modifier indépendamment les unes des autres ?

    ok. je vais la dupliquer avec list().

    Merci !

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 683
    Par défaut
    Salut,

    Pour avoir 2 listes différentes, il faut créer 2 objets list (différents).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ajouter dans deux tables
    Par mikedimoi dans le forum Débuter
    Réponses: 4
    Dernier message: 11/01/2006, 20h49
  2. Ajout dans une liste avec un bouton
    Par Invité dans le forum Access
    Réponses: 6
    Dernier message: 07/12/2005, 08h27
  3. [css]problème d'attribution de classe dans deux listes
    Par Mitaka dans le forum Mise en page CSS
    Réponses: 9
    Dernier message: 24/11/2005, 18h05
  4. Ajout dans une liste/vérification
    Par illight dans le forum Access
    Réponses: 1
    Dernier message: 11/10/2005, 17h12
  5. [LG]probleme d'ajout dans une liste chainée...
    Par misteryann dans le forum Langage
    Réponses: 5
    Dernier message: 08/03/2004, 20h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo