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 :

tri de liste


Sujet :

Python

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 202
    Points : 33
    Points
    33
    Par défaut tri de liste
    bonjour

    jai une liste suivante
    liste=[('FG77',5.24),('CS33',2.90),('BN55', 4.28),('Al2O3',2.09)]

    comment fait on pour par ordre decroissant suivant les donnees numeriques
    pour avoir le resultat

    liste=[('FG77',5.24),('BN55', 4.28),('CS33',2.90),('Al2O3',2.09)]

  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,

    Il y a différentes manières de la faire, en voici deux:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    liste=[('FG77',5.24),('CS33',2.90),('BN55', 4.28),('Al2O3',2.09)]
     
    def sort_on_max(d):
        return d[1]
     
    liste.sort(key=sort_on_max)
    liste.reverse()
     
    print liste
     
    liste=[('FG77',5.24),('CS33',2.90),('BN55', 4.28),('Al2O3',2.09)]
     
    liste.sort(cmp=lambda x, y: cmp(x[1], y[1]))
    liste.reverse()
     
    print liste

  3. #3
    Invité
    Invité(e)
    Par défaut
    Solution 1 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    from operator import itemgetter
    liste = [('FG77',5.24),('CS33',2.90),('BN55', 4.28),('Al2O3',2.09)]
    liste = sorted(liste, key=itemgetter(1), reverse=True)
    print liste
    Explications :
    1/ On importe itemgetter du module operator
    2/ sorted : Fonction de tri de liste
    2.1/ Paramètre 1 : la liste à trier
    2.2/ Paramètre 2 : key=itemgetter(1) -> Va prendre la valeur du deuxième élément du tuple pour faire le tri
    2.3/ Paramètre 3 : reverse=True -> Faire un tri inverse

    Solution 2 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    liste = [('FG77',5.24),('CS33',2.90),('BN55', 4.28),('Al2O3',2.09)]
    liste = sorted(liste, key=lambda x: x[1], reverse=True)
    print liste

    Explications :
    1/ sorted : Fonction de tri de liste
    2.1/ Paramètre 1 : la liste à trier
    2.2/ Paramètre 2 : key=lambda x: x[1] -> Va prendre la valeur du deuxième élément du tuple pour faire le tri (on définit une fonction lambda pour cela qui retourne le premier élément du tuple)
    2.3/ Paramètre 3 : reverse=True -> Faire un tri inverse

    Plus d'informations : http://wiki.python.org/moin/HowTo/Sorting

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 202
    Points : 33
    Points
    33
    Par défaut tri de liste
    merci pour toutes les solutions possibles

Discussions similaires

  1. Requête, tri sur liste de choix
    Par seb.kepka dans le forum Access
    Réponses: 1
    Dernier message: 15/05/2006, 14h47
  2. Algo de tri par liste chainée
    Par Treuze dans le forum C
    Réponses: 3
    Dernier message: 30/12/2005, 14h05
  3. quel est le meilleur algo de tri de liste ?
    Par sony351 dans le forum Algorithmes et structures de données
    Réponses: 7
    Dernier message: 24/07/2005, 02h00
  4. [langage] tri avancé, liste de listes
    Par schnecke dans le forum Langage
    Réponses: 6
    Dernier message: 29/03/2004, 14h00
  5. tri de liste chainée
    Par RezzA dans le forum C
    Réponses: 7
    Dernier message: 26/01/2003, 20h25

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