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 :

List compréhension


Sujet :

Python

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 30
    Par défaut List compréhension
    Bonjour ,

    Petit problème de liste ...
    J'ai importer un tableau excel (.csv) dans mon programme python
    Sauf que lorsque j'ai importé mon tableau j'ai une liste de sous liste comme ci dessous:

    Je ne comprend pas comment faire pour avoir trois listes indépendantes ..
    C'est a dire listH=[0.7,07,07,0.8 etc] listD=[295,289,290 etc] listP=[....]

    [['H', 'D', 'P'],
    ['0.7', '295', '8.2'],
    ['0.7', '289', '8.5'],
    ['0.7', '290', '8.0'],
    ['0.8', '283', '8.7'],
    ['0.7', '283', '8.0'],


    J'ai essayer de faire une liste avec un listH=[i for i+4 in Tableau ]

    Merci d'avance !

    Bonne journée,

  2. #2
    Membre Expert
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 617
    Par défaut
    Si tu as juste 3 colonnes, tu peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Liste_H = [Tableau[i][0] for i in range(len(Tableau))]
    Liste_H_val=Liste_H[1:]
    pour la première par exemple.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 30
    Par défaut List compréhension Python3
    Merci pour la rapide réponse !

    En fait ce n'est pas un tableau que j'ai , c'est une liste il n'y a donc pas de colonne ( même si je l'ai nommé comme ca ^^ )
    Voici la liste en screen:

    Nom : Screen.png
Affichages : 317
Taille : 11,6 Ko

    Tableau=[['H', 'D', 'P'],['0.7', '295', '8.2'],['0.7', '289', '8.5'],['0.7', '290', '8.0'], ['0.8', '283', '8.7'],etc ]


    La listeH représente les premiéres valeurs des sous listes , et D la deuxiéme ...

  4. #4
    Membre confirmé Avatar de racine carrée
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 156
    Par défaut
    Si tableau est de la forme que tu as donnée, le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    a=[[i[k]  for i in tableau] for k in range(len(tableau[0]))]
    renvoie une liste composée de chaque colonne du fichier.
    Ensuite, il suffit de faire a[k-1] pour accéder à la k-ième colonne du fichier.
    Attention, cette méthode suppose que chaque ligne contienne le même nombre d'élément que la première ligne (ou plus que dans de la première ligne à la rigueur, mais s'il y a k éléments dans la première ligne, seules les k premières colonnes du fichier seront renvoyées).
    Bon courage

  5. #5
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 715
    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 715
    Par défaut
    Salut,
    Pour "transposer" un tableau vous avez zip:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> T = [[ 'A', 'B'], [1, 2], [3,4]]
    >>> list(zip(*T))
    [('A', 1, 3), ('B', 2, 4)]
    mais vous préférerez certainement utiliser numpy.

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

  6. #6
    Membre Expert
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 617
    Par défaut
    Ma réponse ne convient pas ?

  7. #7
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 30
    Par défaut List compréhension Python3
    Marco056

    J'ai essayé tes lignes mais ça ne marche pas " list out of range "
    Ce ne sont pas vraiment des colonnes comme dans un tableau , mais des sous listes

  8. #8
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 30
    Par défaut List compréhension Python3
    racine carrée

    Je ne comprend pas bien lorsque j'exécute le a celui me renvoie le Tableau .
    Pourtant je comprend ta ligne c'est ce que j'avais essayé de faire au début ...

    Tableau[0]=['H', 'D', 'P']
    Tableau[1]=['0.7', '295', '8.2']

    Il renvoie en juste les sous liste ..

  9. #9
    Expert confirmé

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    VincentB29, en Python une liste de listes est un tableau.

    Et une liste de listes de listes est un tableau à trois dimensions.

    La solution zip de wiztricks me paraît la plus rationnelle et pythonique. C'est subjectif bien sûr.

  10. #10
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 30
    Par défaut List compréhension Python3
    Ah ok je début dans python , j'aurais appris un truc !

    Cependant j'ai essayé de faire la transposer mais ça me renvoie au même tableau .
    Je ne comprend pas bien ce que signifie "Transposer" ...

    Je cherche a créer trois listes indépendantes du Tableau à 3 dimensions
    Comme ci dessous:

    listH=[0.7,07,07,0.8 etc] listD=[295,289,290 etc] listP=[....]

    Tableau=[['H', 'D', 'P'],
    ['0.7', '295', '8.2'],
    ['0.7', '289', '8.5'],
    ['0.7', '290', '8.0'],
    ['0.8', '283', '8.7'],
    ['0.7', '283', '8.0'],
    ['0.8', '292', '8.9'],
    ['0.8', '291', '8.9'],
    []]

    Merci d'avance

  11. #11
    Membre Expert
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 617
    Par défaut
    Ma solution ne fonctionne pas (et les autres non plus) car tu as une liste vide à la fin ! Si tu nous donnes les infos qu'au compte-gouttes, cela va être compliqué.
    Voici une option :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    liste_H=[Tableau[i][0] for i in range(1,len(Tableau)-1)]

  12. #12
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 30
    Par défaut List compréhension Python3
    Merci beaucoup Marco056

    Je n'avais pas fait attention qu'il y avait une liste vide à la fin ...

    Problème résolu !

    Bonne journée et merci encore !

  13. #13
    Membre confirmé Avatar de racine carrée
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 156
    Par défaut
    Je ne comprend pas bien ce que signifie "Transposer" ...
    La transposition est une application linéaire bijective (automorphisme) de l'ensemble des matrices carrées de taille n vers ce même ensemble, qui à une matrice A associe la matrice tA dont les colonnes sont les lignes de la matrice A. (C'est d'ailleurs une symétrie puisque si l'on compose l'application transposition par elle-même on obtient l'application IdMn[k])
    Dans notre cas, transposer un tableau L signifie retourner un tableau dont les colonnes sont les lignes du tableau L.

  14. #14
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Comment importes-tu tes données depuis le csv? La structure de données que tu obtiens est-elle vraiment une liste ou un vecteur Numpy à deux dimensions?

    Avec mes meilleures salutations

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  15. #15
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 30
    Par défaut List compréhension Python3
    Bonjour Thierry ,

    Voici comment j'ai fait , j'ai trouvé cette méthode sur internet ...

    Tableau=[]

    f = open('C:\\Users\\LATITUDE\\Desktop\\CandhisCSV.csv')

    for row in f:
    print(row.split())

    Tableau.append(row.split())

    f.close

Discussions similaires

  1. [Generic List] Petit problème de compréhension
    Par Amuny dans le forum VB.NET
    Réponses: 9
    Dernier message: 27/08/2012, 08h32
  2. Réponses: 3
    Dernier message: 02/02/2012, 15h55
  3. Liste dynamique compréhension
    Par speedy_g dans le forum Excel
    Réponses: 3
    Dernier message: 01/12/2011, 10h35
  4. compréhension de liste paire par paire
    Par sopsag dans le forum Général Python
    Réponses: 13
    Dernier message: 07/12/2010, 21h36
  5. Syntaxe élégante pour une fusion de compréhension de liste
    Par sopsag dans le forum Général Python
    Réponses: 8
    Dernier message: 23/08/2010, 12h22

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