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 :

récupérer les premières valeurs de "sous-listes" contenues dans une liste


Sujet :

Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 3
    Points : 2
    Points
    2
    Par défaut récupérer les premières valeurs de "sous-listes" contenues dans une liste
    Bonjour !

    Je n'arrive pas à "accéder" à certaines valeurs contenues dans une liste de "sous-liste".

    par exemple :
    list = [ [1,2,3] , [4,5,6] , [7,8,9] ]

    list[:] affiche la liste complète, list[0] affiche la premier élément soit [1,2,3], list [0][0] affiche le premier élément de la première sous-liste soit 1.

    je pensais pouvoir accéder aux premiers éléments de chaque liste en utilisant list[:][0].

    Or list[:][0] me renvoie [1,2,3] au même titre que list[0][:] ou list[0].

    Une idée ?

    Merci d'avance

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Salut,

    Tu dois lire tes items dans une boucle pour cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    for i in list:
        print(i[0])
    ou bien les enregistrer dans une liste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    l = [i[0] for i in ilst]
    print(l)

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Merci pour le retour

    Je suis un peu déçu, ça m'arrange pas des masses. idéalement j'aurais aimé pouvoir récupérer directement une liste de tous les premiers éléments sans passer par une boucle.

    Mais si ya pas moyen... je vais faire avec

  4. #4
    Expert éminent Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 035
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 035
    Points : 8 400
    Points
    8 400
    Par défaut
    salut,

    Citation Envoyé par td_eco Voir le message
    Je suis un peu déçu, (...) j'aurais aimé pouvoir récupérer (...) sans passer par une boucle.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    >>> list(map(lambda x:x[0], l))
    [1, 4, 7]

  5. #5
    Membre averti Avatar de zancrows
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2016
    Messages : 155
    Points : 346
    Points
    346
    Par défaut
    Sinon une solution avec la fonction zip()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    l = [[1,2,3], [10,20,30], [100,200,300]]
    l_zip = list(zip(*l))
    print(l_zip)
    # => [(1, 10, 100), (2, 20, 200), (3, 30, 300)]

  6. #6
    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 td_eco Voir le message
    je pensais pouvoir accéder aux premiers éléments de chaque liste en utilisant list[:][0].

    Or list[:][0] me renvoie [1,2,3] au même titre que list[0][:] ou list[0].

    Une idée ?
    Une liste d'objets n'est pas un vecteur et une liste de listes n'est pas un tableau à deux dimensions mais en utilisant une bibliothèque qui réalise/implémente ce genre de structures de données (numpy, pandas,...) on pourra écrire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    >>> import numpy as np
    >>> ar = np.array( [ [1,2,3] , [4,5,6] , [7,8,9] ])
    >>> ar
    array([[1, 2, 3],
           [4, 5, 6],
           [7, 8, 9]])
    >>> ar[:,0]
    array([1, 4, 7])
    >>>
    et je vous laisse réfléchir à cette syntaxe i.e. pourquoi [:,0] plutôt que [:][0].

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

  7. #7
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Merci pour vos réponse,

    la solution de Zancrow marche au poil

Discussions similaires

  1. [AC-2010] Utiliser valeur d'une liste de choix dans une liste déroulante d'un autre formulaire
    Par Sébastien1609 dans le forum Macros Access
    Réponses: 1
    Dernier message: 11/06/2015, 15h31
  2. Réponses: 9
    Dernier message: 21/05/2014, 20h21
  3. [LibreOffice][Base de données] Recuperer une liste de tables et une liste de champs d'une table sur LibreOffice & OpenOffice
    Par gerard.sauvage dans le forum OpenOffice & LibreOffice
    Réponses: 2
    Dernier message: 08/04/2014, 12h35
  4. Réponses: 4
    Dernier message: 08/01/2013, 15h53
  5. Réponses: 0
    Dernier message: 09/11/2010, 15h43

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