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 :

Trier un dictionnaire de tuples


Sujet :

Python

  1. #1
    Membre du Club
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juillet 2011
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Juillet 2011
    Messages : 60
    Points : 46
    Points
    46
    Par défaut Trier un dictionnaire de tuples
    Bonjour,

    Je souhaiterais trier mon dictionnaire de tuples en fonction du premier élément du tuple qui est un entier (du plus petit au plus grand). Je n'arrive pas à trouver la "key" pour la fonction sorted.
    Pourriez vous m'aider ?

    Merci d'avance.

  2. #2
    Membre éprouvé

    Homme Profil pro
    Ingénieur
    Inscrit en
    Août 2010
    Messages
    654
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Août 2010
    Messages : 654
    Points : 1 150
    Points
    1 150
    Par défaut
    Salut,

    Est-ce que ceci répond à ta question:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    # Un dico contenant des tuples:
    d = {0: (2, 1), 1: (1, 2), 2: (7, 8), 3: (2, 2), 4: (2, 0), 5: (2, 3)}
     
    sorted(d.keys())
    #[0, 1, 2, 3, 4, 5]
    sorted(d.values())
    #[(1, 2), (2, 0), (2, 1), (2, 2), (2, 3), (7, 8)]
    On peut trier un dico sur les clés ou sur les valeurs aisément. Le tri sur les tuples s'effectue d'abord sur la première valeur, puis sur la séconde.

    Ju

  3. #3
    Membre du Club
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juillet 2011
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Juillet 2011
    Messages : 60
    Points : 46
    Points
    46
    Par défaut
    Salut merci pour ta réponse.

    Oui effectivement ça règle le problème. J'ai trouvé une autre solution (peut être plus compliquée )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    sorted_data = sorted(data.iteritems(), key=lambda x : x[1][0])
    for a,b in sorted_data:
    ...

  4. #4
    Membre éprouvé

    Homme Profil pro
    Ingénieur
    Inscrit en
    Août 2010
    Messages
    654
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Août 2010
    Messages : 654
    Points : 1 150
    Points
    1 150
    Par défaut
    Oui, effectivement c'est une autre solution.

    Plus complète et paramétrable, tu peux définir toi même une fonction sur laquelle trier (lambda ou def). Ci-dessous un exemple issu du blog sametmax:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    def carre(val): # on va ordonner par valeur de carré
        return val**2 
     
    sorted([-1, -2, 0, 3], key=carre)
    #[0, -1, -2, 3]
    Ciao

    Ju

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

Discussions similaires

  1. [Débutant] Trier un dictionnaire
    Par renovatio34 dans le forum C#
    Réponses: 6
    Dernier message: 08/05/2012, 20h13
  2. [XNA]Trier les valeurs d'un dictionnaire
    Par avogadro dans le forum C#
    Réponses: 8
    Dernier message: 17/03/2010, 16h24
  3. trier un dictionnaire
    Par ekremyilmaz dans le forum Général Python
    Réponses: 5
    Dernier message: 16/10/2008, 20h29
  4. trier un dictionnaire
    Par nina08 dans le forum Général Python
    Réponses: 6
    Dernier message: 04/08/2008, 00h11
  5. Trier une liste de tuples par le nième élément de tuples
    Par vdumont dans le forum Général Python
    Réponses: 2
    Dernier message: 04/05/2007, 20h45

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