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 valeurs suivant un indice


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2012
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2012
    Messages : 50
    Par défaut tri de valeurs suivant un indice
    bonjour
    j'ai la liste suivante

    v1 = [(495.0, 1), (500.0, 1), (539.0, 2), (560.0, 0), (680.0, 0), (685.0, 0), (690.0, 0)]

    je voudrai avoir un tri suivant l'indice (0,1,2) c'est a dire obtenir

    v1 = [(560.0, 0), (680.0, 0), (685.0, 0), (690.0, 0), (495.0, 1), (500.0, 1), (539.0, 2)]

    comment faire ?

  2. #2
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    La méthode "sort" de Python n'est pas seulement rapide, elle est très configurable pour trier à peu près n'importe quoi.

    Elle a un avantage supplémentaire dont on va se servir ici: elle ne déplace pas les éléments égaux par rapport au critère de tri.

    Voilà donc une méthode simple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    v1 = [(495.0, 1), (500.0, 1), (539.0, 2), (560.0, 0), (680.0, 0), (685.0, 0), (690.0, 0)]
    v1.sort(key=lambda v: v[0]) # tri sur place de v1 selon le 1er indice
    v1.sort(key=lambda v: v[1]) # tri sur place de v1 selon le 2ème indice
    print(v1)
    [(560.0, 0), (680.0, 0), (685.0, 0), (690.0, 0), (495.0, 1), (500.0, 1), (539.0, 2)]

  3. #3
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2012
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2012
    Messages : 50
    Par défaut
    merci beaucoup

Discussions similaires

  1. Tri des valeurs dans un DBGrid
    Par soviet dans le forum C++Builder
    Réponses: 3
    Dernier message: 11/06/2015, 14h18
  2. Réponses: 12
    Dernier message: 27/03/2013, 14h15
  3. tri des valeurs d'une matrice
    Par suzanne loubert dans le forum Langage
    Réponses: 2
    Dernier message: 07/12/2005, 03h47
  4. Tri par valeur d un hash de hash
    Par LeLaulau dans le forum Langage
    Réponses: 4
    Dernier message: 28/09/2005, 10h33
  5. [langage] Tri de valeurs dans un hash
    Par Arioch dans le forum Langage
    Réponses: 2
    Dernier message: 15/11/2004, 11h35

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