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 :

liste in liste python


Sujet :

Python

  1. #1
    Membre actif
    Inscrit en
    Septembre 2013
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Septembre 2013
    Messages : 17
    Par défaut liste in liste python
    Bonjour,
    je veux transformer des éléments de liste en tableaux.
    Si L est ma liste qui contient d'autre listes (L1,L2,...,Ln), moi je veux transformer ces listes en tableux:
    m un tableau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    import numpy as np
    m=np.array(L1),
    Voici un example:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    L=[[[1],[2],[3],[4],[5],[6]],[[7],[8],[9],[10],[11],[12]],[[13],[14],[15],[16],[17],[18]]]
    l'affichage doit donne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    array([1,2,3],
    [7,8,9],
    [13,14,15])
    d'abord je prendre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [1],[2],[3] et [7],[8],[9] et [13],[14],[15]
    puis les transformer en tableau
    puis je passe à les autre elements
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [4],[5],[6] et [10],[11],[12] et [16],[17],[18]
    l'affichage doit donne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    array([4,5,6],
    [10,11,12],
    [16,17,18])
    helpe me!

  2. #2
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 063
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 063
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    L=[[[1],[2],[3],[4],[5],[6]],[[7],[8],[9],[10],[11],[12]],[[13],[14],[15],[16],[17],[18]]]
    Non ce n'est pas un bon exemple du tout, ce genre de résultats ne devrait pas arriver si la conception de votre code était bonne.

    Revoyez cela avant de continuer, cependant la méthode pour transformer une liste en array numpy est la bonne, c'est à dire


  3. #3
    Membre actif
    Inscrit en
    Septembre 2013
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Septembre 2013
    Messages : 17
    Par défaut
    mon objectif c'est de connaitre comment prendre 3 element comme suit
    voici ma liste
    je veux prendre les elemnts en rouges d'abord puis les convrtit puis les verts
    L=[[[1],[2],[3],[4],[5],[6]],[[7],[8],[9],[10],[11],[12]],[[13],[14],[15],[16],[17],[18]]]

    comment faire ça en boucle?

  4. #4
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 063
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 063
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> L=[[[1],[2],[3],[4],[5],[6]],[[7],[8],[9],[10],[11],[12]],[[13],[14],[15],[16],[17],[18]]]
    >>> [[i[0] for i in L[n][0:3]] for n in range(3)]
    >>> [[1, 2, 3], [7, 8, 9], [13, 14, 15]]
    Edit : La suite

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    >>> [[i[0] for i in L[n][3:6]] for n in range(3)]
    [[4, 5, 6], [10, 11, 12], [16, 17, 18]]
    Edit : Conclusion

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    >>> for j in range(2):
    ...     listes = [[i[0] for i in L[n][j:j+3]] for n in range(3)]
    ...     for liste in listes:
    ...         print(liste)
    ... 
    [1, 2, 3]
    [7, 8, 9]
    [13, 14, 15]
    [2, 3, 4]
    [8, 9, 10]
    [14, 15, 16]

  5. #5
    Membre actif
    Inscrit en
    Septembre 2013
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Septembre 2013
    Messages : 17
    Par défaut
    ok, merci beaucoup
    je suis debutante en python
    mais si la taille de la liste L est plus grande, meme pour les listes L1,L2,L3.....

  6. #6
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 063
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 063
    Par défaut
    mais si la taille de la liste L est plus grande, meme pour les listes L1,L2,L3.....
    Soyez plus précise ou donner un exemple.

    L1, L2 et L3, en était-il question?

    Cet élément de réponse ne vous aide pas à résoudre ?

  7. #7
    Membre actif
    Inscrit en
    Septembre 2013
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Septembre 2013
    Messages : 17
    Par défaut
    OK
    je travaille sur un fichier fasta, sur ce dernier j'applique quelques fonctions , jusqu'à ce que j'obtain une liste d'entiers contient des sous-listes.les sous-listes contient des sous-sous-listes qui contient les entiers.

  8. #8
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 063
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 063
    Par défaut
    je travaille sur un fichier fasta, sur ce dernier j'applique quelques fonctions , jusqu'à ce que j'obtain une liste d'entiers contient des sous-listes.les sous-listes contient des sous-sous-listes qui contient les entiers.
    Quel genre de travail vous demande de sortir des données sous cette forme ?

    Donnez l'objectif de votre travail avec les éléments en entrée de programme et sous quelle forme ces données ressortent.

    fasta ou texte c'est pareil, rien me permettant de changer d'avis sur votre sortie de code dans votre 1er post.

    P.S vous ne répondez pas à mes questions...

  9. #9
    Membre actif
    Inscrit en
    Septembre 2013
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Septembre 2013
    Messages : 17
    Par défaut
    OK
    je reviens à l'example precedant.la longuer de L ici est egale à 3.
    mais si la longueur de la liste L est plus grand, c-à-d: contient d'autre sous-listes.
    L=[[[1],[2],[3],[4],[5],[6]],[[7],[8],[9],[10],[11],[12]],[[13],[14],[15],[16],[17],[18]], [...],.........]

    L1=[[1],[2],[3],[4],[5],[6],.....] cette liste peut contient d'autre element c'est à dire la longueur soit plus grande n1
    meme chose pour [[7],[8],[9],[10],[11],[12]],et [[13],[14],[15],[16],[17],[18]]

  10. #10
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 063
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 063
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> L=[[[1],[2],[3],[4],[5],[6]],[[7],[8],[9],[10],[11],[12]],[[13],[14],[15],[16],[17],[18]], [[19],[20],[21],[22],[23],[24]]]
    >>> [[i[0] for i in L[n][0:3]] for n in range(4)]
    >>> [[1, 2, 3], [7, 8, 9], [13, 14, 15], [19, 20, 21]]
    Où est le problème ?

    Pourquoi insérez-vous un nouvel élément n1 ?

    Je vous signale que je n'ai toujours pas réponse à mes questions...

  11. #11
    Membre actif
    Inscrit en
    Septembre 2013
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Septembre 2013
    Messages : 17
    Par défaut
    pour L1 et L2 et L3 se sont les sous-listes de la liste L
    non, n1 n'est un element c'est la longueur de la liste L1( juste un example)

  12. #12
    Membre actif
    Inscrit en
    Septembre 2013
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Septembre 2013
    Messages : 17
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    L=[[[1],[2],[3],[4],[5],[6]],[[7],[8],[9],[10],[11],[12]],[[13],[14],[15],[16],[17],[18]], [[19],[20],[21],[22],[23],[24]]]
    ici on peut trouver d'autre element:
    L1=[[1],[2],[3],[4],[5],[6],[22],[258],..]

  13. #13
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 063
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 063
    Par défaut
    Avec tout les codes donnés vous devriez pouvoir vous en sortir sachant les résultats affichés dans mes exemples.

    non, n1 n'est un element c'est la longueur de la liste L1( juste un example)
    Peut-être je me suis mal exprimé, mais pourquoi parler de n1 pour dire longueur ?

    Sachez expliquer les choses simplement, votre n1 était inutile dans les données du problème.

    Qui puis est vous le mettez en gras pour indiquer une importance, ce qui n'est ici pas le cas.

  14. #14
    Membre actif
    Inscrit en
    Septembre 2013
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Septembre 2013
    Messages : 17
    Par défaut
    merci,
    pour les tableau j'ai eassayer mais il m'affiche tous les entiers dans un seul tableau.

  15. #15
    Membre actif
    Inscrit en
    Septembre 2013
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Septembre 2013
    Messages : 17
    Par défaut
    help

  16. #16
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 063
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 063
    Par défaut
    Pour demander de l'aide, il faudrait montrer votre code et l'erreur engendré.

    Surtout montrer

    1. Votre donnée de départ
    2. Votre démarche
    3. Votre donnée en sortie
    4. Votre donnée attendue

    Difficile quand on a pas les bases, n'est-ce pas? Peut-être devriez vous prendre le temps de vous adapter à la syntaxe minimaliste de python. Vous éviterez sans doute cette horreur...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    L=[[[1],[2],[3],[4],[5],[6]],[[7],[8],[9],[10],[11],[12]],[[13],[14],[15],[16],[17],[18]], [[19],[20],[21],[22],[23],[24]]]

  17. #17
    Membre actif
    Inscrit en
    Septembre 2013
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Septembre 2013
    Messages : 17
    Par défaut
    OK
    j'applique l'instruction:
    [[i[0] for i in l[n][j:j+3]] for n in range(3)] , dans l'affichage me donne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [array([], shape=(3, 0), dtype=float64)]
    parce que je travaille sur un grand nombre d'element.
    d'apres ce que j'ai obtenu, je trouve que le probleme est dans la boucle.
    je vous decrit mon travaille:
    j'ai une liste L qui contient d'autre sous-listes une sous-liste contient plusieurs nombres, je prend les 3 premiers sous-listes , puis, je prend les 3 premiers nombres(elements), je passe à la deuxieme sous-liste je prend trois aussi meme chose pour la troisieme.convert ça à une matrice 3*3.
    je passe au suivant nombres, le meme rotine 3 elements de chaque sous-liste , jusqu'à la fin de 3 sous-listes.
    puis , je prend d'autre 3 sous-listes de la liste L, et faire les meme etapes de les sous-listes precedentes.
    a chaque fois je prend trois sous-listes de L puis appliquer les etapes

  18. #18
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 063
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 063
    Par défaut
    je vous decrit mon travaille:
    Le métier d'informaticien est un métier complexe, si vous ne vous simplifiez pas plus la vie, ça sera difficile pour vous.

    Cela commence par des explications claires et précises.

    Je n'ai strictement rien compris, je tente une dernière fois une demande.


    • À partir de quelles données partez vous (fichier, données brutes dans le code, ...) ?
    • Quel est le résultat final attendu ?


    Répondez simplement et directement à ces simples questions.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [array([], shape=(3, 0), dtype=float64)]
    Numpy ? En avez-vous parlé précédemment ? Ai-je loupé quelque chose ?

    Comptez-vous me rajouter à chaque post une nouveauté, ou allez-vous tout me dire en une seule fois et une fois pour toute ?

  19. #19
    Membre actif
    Inscrit en
    Septembre 2013
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Septembre 2013
    Messages : 17
    Par défaut
    lorsque j'applique :

    ll=[[i[0] for i in l[n][j:j+3]] for n in range(len(l))]
    il m'affiche cet erreur:'int' object is not subscriptable

  20. #20
    Membre émérite
    Homme Profil pro
    Aucune activité
    Inscrit en
    Novembre 2011
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune activité

    Informations forums :
    Inscription : Novembre 2011
    Messages : 505
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     ll=[[i[0] for i in l[n][j:j+3]] for n in range(len(l))]
    1) il y a un bouton code, ce n'est pas pour rien.
    2) désolé, mais vous n'arrivez pas à expliquer, malgré tous les efforts de Fred1599.

    Traduit en français:
    pour n qui parcours [0…longueur de l - 1]

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [i[0] for i in l[n][j:j+3]]
    pour i qui parcours la liste l[n], donc tous les éléments de l, i parcours les éléments l[n][j:j+3].
    Si donc, l[n] est bien une liste, alors i prends les trois valeurs indiquées.
    Si l[n][j], l[n][j+1], l[n][j+2] sont des listes, alors i[0] renverra le contenu de ces listes.

    D'autre part…

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    >>> L=[[[1],[2],[3],[4],[5],[6]],[[7],[8],[9],[10],[11],[12]],[[13],[14],[15],[16],[17],[18]]]
    >>> for j in range(2):
    	listes = [[i[0] for i in L[n][j:j+3]] for n in range(3)]
    	for liste in listes:
    		print(liste)
     
     
    [1, 2, 3]
    [7, 8, 9]
    [13, 14, 15]
    [2, 3, 4]
    [8, 9, 10]
    [14, 15, 16]
    >>>
    Merci Fred1599.
    Cela fonctionne avec ces données. La preuve? le dévoué Fred1599 a pris la peine, lui, de vous faire une copie de son shell Python. Et vous pouvez, bien évidemment, essayer aussi.

    Si vous voulez de l'aide:
    1) commencez par lancer une fenêtre Python (le shell), comme l'a si gentiment fait Fred1599.
    2) essayez le code proposé
    3) admettez qu'il fonctionne
    4) regardez vos données, et essayez avec vos données, toujours dans le shell.
    5) Si quelque chose ne fonctionne pas. Essayez de comprendre pourquoi.
    6) Si cela pose problème, alors POSTEZ une copie de ce qui se passe sous le shell, METTEZ-le entre les balises "code". Et posez une question, formulée simplement.
    7) alors, mais uniquement alors, vous pourrez peut-être, si quelqu'un de bonne volonté en trouve l'envie, obtenir une réponse voire une solution.

    PS: petite piste, vérifiez vos données.

    Clodion

Discussions similaires

  1. comment convertir une liste en matrice(Python)
    Par rosef dans le forum Général Python
    Réponses: 5
    Dernier message: 17/09/2013, 22h59
  2. Python et les listes de listes
    Par gb.gambas dans le forum Général Python
    Réponses: 3
    Dernier message: 28/03/2009, 15h12
  3. Regrouper une liste en liste de listes
    Par West01 dans le forum Prolog
    Réponses: 12
    Dernier message: 14/03/2008, 14h07
  4. acceder au n iéme element d'une liste std::list
    Par sorari dans le forum SL & STL
    Réponses: 4
    Dernier message: 23/03/2005, 15h21
  5. [langage] tri avancé, liste de listes
    Par schnecke dans le forum Langage
    Réponses: 6
    Dernier message: 29/03/2004, 14h00

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