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 :

insertion liste de listes


Sujet :

Python

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2005
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 41
    Points : 24
    Points
    24
    Par défaut insertion liste de listes
    Bonjour.
    Mon problème quand je modifie (par addition) la valeur de liste2[0][0], la valeur de liste1[0][0] change aussi.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    liste1 = [[10, 'X'], [20,'X'], [30,'X'], [40,'X'], [50,'X'], [60,'X'], [70,'X'], [80,'X']]
    liste2 = []
     
    liste2.append(liste1[0])
     
    liste2[0][0] += liste1[1][0]
     
     
    print "liste1[0][0] = ", liste1[0][0]
    print "liste2[0][0] = ", liste2[0][0]

  2. #2
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 462
    Points : 9 249
    Points
    9 249
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Avec la ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    liste2.append(liste1[0])
    Tu n'ajoutes pas 2 valeurs, mais un morceau de la liste1 représenté par son adresse. Ainsi, les 2 listes sont liées par cette adresse.

    Pour n'ajouter QUE les valeurs de liste1[0], il faut en faire une copie, par exemple avec liste1[0][:].

    Avec la ligne suivante, les 2 listes sont de nouveau indépendantes, et la modification de l'une ne se répercutera pas sur l'autre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    liste2.append(liste1[0][:])
    Autre solution, c'est de ne citer QUE les valeurs dans le append:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    liste2.append([liste1[0][0], liste1[0][1]])
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  3. #3
    Membre à l'essai
    Inscrit en
    Décembre 2005
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 41
    Points : 24
    Points
    24
    Par défaut
    Bonjour,
    Merci pour votre réponse.

    Citation Envoyé par tyrtamos Voir le message
    Bonjour,

    Avec la ligne:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    liste2.append(liste1[0])
    Tu n'ajoutes pas 2 valeurs, mais un morceau de la liste1 représenté par son adresse. Ainsi, les 2 listes sont liées par cette adresse.

    Pour n'ajouter QUE les valeurs de liste1[0], il faut en faire une copie, par exemple avec liste1[0][:].

    Avec la ligne suivante, les 2 listes sont de nouveau indépendantes, et la modification de l'une ne se répercutera pas sur l'autre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    liste2.append(liste1[0][:])
    Autre solution, c'est de ne citer QUE les valeurs dans le append:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    liste2.append([liste1[0][0], liste1[0][1]])

Discussions similaires

  1. [Python 2.X] tri et insertion dans une liste de liste
    Par zargooo04 dans le forum Général Python
    Réponses: 8
    Dernier message: 27/04/2016, 12h02
  2. Regrouper une liste en liste de listes
    Par West01 dans le forum Prolog
    Réponses: 12
    Dernier message: 14/03/2008, 14h07
  3. Réponses: 29
    Dernier message: 29/03/2007, 11h50
  4. Insertion d'une liste
    Par mohamed2006 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 06/12/2006, 13h11
  5. [LG]Tri par insertion dans une liste chainée
    Par mister_dsg dans le forum Langage
    Réponses: 4
    Dernier message: 18/12/2003, 22h34

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