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 :

Mettre à jour une liste contenue dans une liste


Sujet :

Python

  1. #1
    Membre du Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2013
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Novembre 2013
    Messages : 76
    Points : 40
    Points
    40
    Par défaut Mettre à jour une liste contenue dans une liste
    Bonjour,

    Bon, question d'un débutant ....

    J'ai une liste de listes et je voudrais mettre à jour une liste de la liste.
    Pour ajouter un élément dans une liste, la méthode append fonctionne bien : ma_liste.append(valeur_a_ajouter)

    Mais pour ajouter l'élément dans une liste appartenant à une liste ???

    Par exemple : ma_liste = [(1,2),(1,3),(3,6)]
    Je voudrais ajouter 8 à la 2nde liste pour obtenir [(1,2),(1,3,8),(3,6)]

    La finalité étant, pour être générique de pouvoir ajouter le contenu de l'élément X à la liste de position N dans ma liste de listes "ma_liste"
    Merci

  2. #2
    Membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Novembre 2017
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Novembre 2017
    Messages : 124
    Points : 46
    Points
    46
    Par défaut
    Bonjour, je pense pouvoir t'aider malgrè mon niveau débutant

    Ce que tu montre en liste ne me semble pas être une liste imbriquée dans une autre.
    Actuellement je suis sur les listes imbriquées et voila à quoi cela ressemble :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    liste = [[1, 2], [1, 3], [1, 6]]
    J'ai utilisé la fonction append qui fonctionne avec des listes imbriquées.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    def ajoutenombre():
      liste = [[1, 2], [1, 3], [1, 6]]
      liste[1].append(8)
      print(liste)
    ajoutenombre()
    Voila le résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    [[1, 2], [1, 3, 8], [1, 6]]


    Voila un exemple comment manipuler une liste imbriquée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    liste = [[1, 2], [1, 3], [1, 6]]
    print(liste[0])
    print(liste[0][0])
    print(liste[0][1])
    print(liste[2][1])
    la sortie :
    Tu peut donc appeler un élément de manière très simple

  3. #3
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,

    Citation Envoyé par Tonivege Voir le message
    La finalité étant, pour être générique de pouvoir ajouter le contenu de l'élément X à la liste de position N dans ma liste de listes "ma_liste"
    Si vous saviez modifier le i-ème élément d'une liste vous sauriez aussi modifier son j-ième élément si celui ci était une liste (en appliquant la même opération ou une autre opération si c'est un ajout) - dans votre cas, pas de bol, c'est un tuple! -.
    Comme c'est une opération élémentaire sur les listes, ouvrir le bon chapitre d'un tuto. ne vous fera pas de mal (ainsi que regarder les autres chapitres qui parlent de liste).

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

  4. #4
    Membre du Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2013
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Novembre 2013
    Messages : 76
    Points : 40
    Points
    40
    Par défaut
    Je vais tester cela de suite, un GRAND merci

  5. #5
    Membre du Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2013
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Novembre 2013
    Messages : 76
    Points : 40
    Points
    40
    Par défaut
    Bilan du test, cela fonctionne bien en partant du liste déjà remplie.
    Mais au début, ma liste est vide et l'ajout d'un élément l'ajoute à toutes les listes, bizarre...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ma_liste = [[]] * 3
    ma_liste[1].append(56)
    print(ma_liste)
    résultat :
    Je suppose que la méthode de création de la liste de listes vides induit que l'ajout se fait sur chaque liste....

  6. #6
    Membre du Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2013
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Novembre 2013
    Messages : 76
    Points : 40
    Points
    40
    Par défaut
    wiztricks, merci pour le tuto.
    Mais j'y avais jeté un coup d’œil et sur d'autres aussi et cherché dans les posts mais je n'avais pas trouvé la solution.
    J'avais testé ce qu'a écrit Whisper40 sauf que ma définition initiale de listes de listes étant erronée, le résultat n'était pas bon...
    J'avais créé [(1,2),(1,3),(3,6)] au lieu de [[1,2],[1,3],[3,6]] ce qui a fait toute la différence...

  7. #7
    Membre émérite

    Homme Profil pro
    Ingénieur calcul scientifique
    Inscrit en
    Mars 2013
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur calcul scientifique

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 229
    Points : 2 328
    Points
    2 328
    Par défaut
    Citation Envoyé par Tonivege Voir le message
    Il ne faut jamais écrire cela ! Une liste en Python c'est un objet. Et un objet n'est jamais copier sauf si on le demande a Python explicitement. Donc la ce que tu obtiens ce n'est pas 3 copies indépendantes de la liste vide, mais 3 références à une même liste vide. Tu crois avoir 3 listes, mais en fait tu n'en as qu'une.

    Il faut écrire :

    ou bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ma_liste = [[] for i in range(3)]
    qui ets l'équivalent de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ma_liste=[]
    for i in range(3):
        ma_liste.append([])

  8. #8
    Membre du Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2013
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Novembre 2013
    Messages : 76
    Points : 40
    Points
    40
    Par défaut
    Un grand merci lg_53.

    Le [] * 3 est une façon de créer la liste que j'avais trouvé sur un tuto quelque part. Bref, je m'y mets et encore merci.

  9. #9
    Membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Novembre 2017
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Novembre 2017
    Messages : 124
    Points : 46
    Points
    46
    Par défaut
    @tonivege Moi qui suit débutant tu m'a fait peur avec ton *3 ahah

    Parfait si la solution est ok

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 23/06/2010, 11h21
  2. Réponses: 1
    Dernier message: 10/02/2010, 13h38
  3. Réponses: 18
    Dernier message: 03/07/2009, 15h19
  4. modifier une liste contenue dans une liste
    Par harris_macken dans le forum Collection et Stream
    Réponses: 10
    Dernier message: 18/03/2008, 16h52
  5. acceder à une liste contenue dans une liste
    Par CPI_en_mousse dans le forum Servlets/JSP
    Réponses: 14
    Dernier message: 12/06/2007, 08h33

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