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 la i-ème valeur dans chaque sous liste d'une liste [Python 3.X]


Sujet :

Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2021
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2021
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Récupérer la i-ème valeur dans chaque sous liste d'une liste
    Bonjour,

    Si j'ai une liste de listes, y a-t-il un moyen de récupérer la i-ème valeur de chaque liste (par exemple une liste de 7 sous-listes et je veux la 2ème valeur de chaque sous-listes) afin de les ranger dans une autre liste sans passer par une boucle for explicite (j'aimerais ne pas avoir à parcourir moi même la liste ), si il existe une méthode sur les listes ou bien une autre solution qui m'est inconnue je suis preneur.

  2. #2
    Expert éminent
    Avatar de Pyramidev
    Homme Profil pro
    Développeur
    Inscrit en
    Avril 2016
    Messages
    1 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Avril 2016
    Messages : 1 470
    Points : 6 107
    Points
    6 107
    Par défaut
    Bonjour,

    Oui, tu peux faire ça en une ligne de code grâce aux compréhensions de listes.
    Voici un tutoriel à ce sujet : https://learn.heeere.com/python/21-l...comprehension/

    Ce tutoriel contient comme exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    nbs = [1, 42, 100, 0.5]
    carres = [v**2 for v in nbs]
    Dans ton cas, au lieu d'avoir une liste de nombres et de calculer le carré de chaque nombre, tu as une liste de listes et tu veux récupérer l'élément numéro i de chaque sous-liste.
    Si tu as compris les listes en compréhension, tu pourras adapter le code à ton besoin.

    Ensuite, plus tard, pour approfondir tes connaissances en Python, tu pourras lire un tutoriel plus général sur le langage.
    Par exemple, le tutoriel du site officiel de Python est là :

    Il aborde les listes en compréhension ici :

    Il y a aussi des tutoriels Python sur developpez.com (mais je ne saurais pas lequel conseiller) : https://python.developpez.com/cours/

  3. #3
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 685
    Points : 30 974
    Points
    30 974
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par chausson1212 Voir le message
    Si j'ai une liste de listes, y a-t-il un moyen de récupérer la i-ème valeur de chaque liste (par exemple une liste de 7 sous-listes et je veux la 2ème valeur de chaque sous-listes) afin de les ranger dans une autre liste
    autre_liste=[x[1] for x in liste_depart]
    Citation Envoyé par chausson1212 Voir le message
    sans passer par une boucle for explicite (j'aimerais ne pas avoir à parcourir moi même la liste )
    Ah ben non, la boucle "for" reste obligatoire. Sauf que dans la syntaxe de, comme l'indique pyramidev, compréhension de liste, la boucle est incluse dans l'expression.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

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

    Citation Envoyé par chausson1212 Voir le message
    j'aimerais ne pas avoir à parcourir moi même la liste
    C'est pas vous qui allez parcourir la liste de listes mais Python avec les instructions que vous aurez écrites.

    Ceci dit, une liste est un ensemble d'objets quelconque. Une liste de listes ressemble à un tableau mais ce n'est pas une collection d'éléments simples auxquels on pourrait appliquer une méthode.


    Imaginez un (vrai) tableau:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> L = list(range(9))
    >>> L
    [0, 1, 2, 3, 4, 5, 6, 7, 8]
    c'est une suite "contiguës" de cases mémoire à une dimension.

    Mais çà pourrait aussi bien être un tableau 3x3 (à 2 dimensions)... et comme sa représentation interne sera une "séquence", utiliser des slices pour sortir la colonne d'indice 1:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    >>> L[1::3]
    [1, 4, 7]
    Et si je peux le faire, c'est que j'ai préservé la propriété "séquence" pour profiter des méthodes associées. Ce qu'on perd avec la liste de listes qui étant composite oblige à des itérations pour accéder aux composants, aux éléments,...

    Après on peut utiliser des outils tels que numpy qui aident à jouer avec ces abstractions:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    >>> ar = np.array(L)
    >>> w = ar.reshape(3, 3)
    >>> w
    array([[0, 1, 2],
           [3, 4, 5],
           [6, 7, 8]])
    >>> w[0][0] = 999
    >>> ar
    array([999,   1,   2,   3,   4,   5,   6,   7,   8])
    >>> w
    array([[999,   1,   2],
           [  3,   4,   5],
           [  6,   7,   8]])
    >>>
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2021
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2021
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par Pyramidev Voir le message
    Merci c'est exactement ce que je cherchais !!

    Citation Envoyé par wiztricks Voir le message
    Oui numpy est très pratique mais elle est tellement fourni qu'il est parfois difficile pour un novice de s'y retrouver.

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Citation Envoyé par chausson1212 Voir le message
    Oui numpy est très pratique mais elle est tellement fourni qu'il est parfois difficile pour un novice de s'y retrouver.
    Si vous débutez, appliquez vous à écrire des boucles et des fonctions...

    Les raccourcis seront utiles lors que vous serez fatigué d'écrire les mêmes constructions, vous aurez alors le courage de vous taper la documentation.

    - 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. Réponses: 19
    Dernier message: 23/06/2020, 20h10
  2. Reucperation d'une valeur dans un sous-sous formulaire
    Par Percevan dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 05/09/2007, 17h57
  3. Réponses: 2
    Dernier message: 02/04/2007, 18h41
  4. Réponses: 3
    Dernier message: 01/02/2007, 12h08
  5. récupération de valeur dans un sous-formulaire
    Par Sebastien_INR59 dans le forum Access
    Réponses: 2
    Dernier message: 05/06/2006, 11h48

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