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 :

Recherche fonction sur les listes


Sujet :

Python

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 25
    Points : 22
    Points
    22
    Par défaut Recherche fonction sur les listes
    Je recherche desesperement une fonction qui permet de transformer une liste [[3,5,6],[7,5],[2,7,9]] en [3,5,6,7,5,2,7,9], je crois que ça existe dans python.

    J'espere que quelqu'un la connait.

    Merci !

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 119
    Points : 106
    Points
    106
    Par défaut
    Je ne sais pas si il existe une fonction toute faite mais ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >>> liste = [[3,5,6],[7,5],[2,7,9]]
    >>> liste=[liste[i][j] for i in range(len(liste)) for j in range(len(liste[i]))]
    >>> print liste
    [3,5,6,7,5,2,7,9]
    Problème : en l'état ne marche pas pour une liste du type [..,[[..,..],[..]],..] (3 niveaux) mais seulement pour une liste comme dans ton exemple [[3,5,6],[7,5],[2,7,9]] (2 niveaux). Tout dépend l'utilisation que tu veux en faire, si les niveaux peuvent changer, alors tu peux recommencer l'opération jusqu'à avoir une liste à 1 seul niveau.

  3. #3
    Expert éminent sénior
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Points : 10 067
    Points
    10 067
    Par défaut
    comme ca aussi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    a = []
    for i in l: a.extend(i)

  4. #4
    Membre actif
    Avatar de Choupi
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 223
    Points : 235
    Points
    235
    Par défaut
    Guigui m'a grillé alors je fais encore plus elegant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    a = []
    map(a.extend,b)
    2 lignes ... qui dit mieux ... ?

    La puissance de python, non ? Mais ne fonctionne toujours pas dans le cas d'une autre liste imbriquée...

    Choupi
    MacOS 10.5 / Ubuntu / C / Python / R
    Pensez au tag résolu

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 119
    Points : 106
    Points
    106
    Par défaut
    Les versions de Choupi et Guigui_ sont en effet plus simple que la mienne mais il reste encore ce problème de niveaux (qui n'est en fait peut-être pas un problème pour ton application). Encore une fois si cela pose problème il suffit de répéter la fonction jusqu'à arriver à une liste à 1 niveau.

    Bon courage

  6. #6
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 25
    Points : 22
    Points
    22
    Par défaut
    Merci les gars, vous assurez !

    Je pensais que python avait une fonction qui faisait ça mais ça doit etre des souvenirs de prog fonctionnelle en caml ou j'ai du faire une focntion de ce genre (en utilisant map d'ailleurs).

    Encore merci !

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

Discussions similaires

  1. fonctions sur les Listes chainées
    Par rototo1 dans le forum C
    Réponses: 7
    Dernier message: 31/01/2013, 18h47
  2. Recherche d'algorithme sur les listes
    Par shaku dans le forum Scheme
    Réponses: 3
    Dernier message: 22/01/2009, 03h16
  3. Contribution : Fonctions utilitaires sur les listes
    Par SpiceGuid dans le forum Caml
    Réponses: 25
    Dernier message: 20/02/2008, 20h52
  4. Réponses: 2
    Dernier message: 22/06/2007, 17h25
  5. Recherche sur les List<T>
    Par pc152 dans le forum C#
    Réponses: 4
    Dernier message: 26/02/2007, 09h38

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