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 une liste {"clé":Objet"} selon un attribut de l'Objet


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 49
    Par défaut Trier une liste {"clé":Objet"} selon un attribut de l'Objet
    Bonsoir, je n'arrive pas à employer correctement la méthode sorted sur ce type de structure :
    Ma structure à trier c'est une liste de 2 ou 3 paire d'une même crypto monnaie : NULS/USDT, NULS/BTC, NULS/ETH

    #exemple #1
    Ici j'affiche la liste des 3 paires :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print(plateforme.getPairesCrypto("NULS"))
    {'NULS_BTC': <class_Paire.Paire instance at 0x10441a3b0>, 'NULS_USDT': <class_Paire.Paire instance at 0x104417ef0>, 'NULS_ETH': <class_Paire.Paire instance at 0x103bb91b8>}


    Un objet Paire contient un attribut marché
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print(unePaire.getMarche())
    {'demandes': [['0.00010708', '15'], ['0.00010793', '32'], ['0.00010899', '124']], 'offres': [['0.00010001', '114'], ['0.00009990', '52'], ['0.00009600', '50']]}


    Mon but est de retourner la liste des 3 paires, triés en fonction de la première valeur[0] du premier tableau de Marché....
    En gros, ici, c'est la valeur 0.00010708 qui est dans le premier objet... Il faut aller chercher la même valeur dans les 2 autres objets pour trier les objets en fonction de cette valeur...

    Ma fonction en est ici :

    (Classe Plateforme)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    def triParValeurEnsembleDePaires(self, nomCrypto, bidOrAsk):
        ensemblePaire = self.getPairesCrypto(nomCrypto) #Liste de 2 ou 3 paire, exactement comme plus haut dans #exemple #1
        print(ensemblePaire["NULS_BTC"].getMarchePremier(bidOrAsk)) #Ici, c'est par exemple la manière d'afficher la première valeur de chaque marché bidOrAsk simplement si on veut trier selon la partie "offres" ou "demandes" du marché
        print(ensemblePaire["NULS_ETH"].getMarchePremier(bidOrAsk)) #Première valeur sur le marché de la deuxième paire ----> ['0.00004185', u'130.24'] la valeur qui nous intéresse est la première ([0])
        print(ensemblePaire["NULS_USDT"].getMarchePremier(bidOrAsk))#Première valeur sur le marché de la troisième paire
     
        nouvelEnsembleDePaireApresLeTrie = sorted('*** code mystérieux que je n arrive pas à trover ****')
        return nouvelEnsembleDePaireApresLeTrie

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 776
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 776
    Par défaut
    Salut,

    Citation Envoyé par passio Voir le message
    Mon but est de retourner la liste des 3 paires, triés en fonction de la première valeur[0] du premier tableau de Marché....
    En gros, ici, c'est la valeur 0.00010708 qui est dans le premier objet... Il faut aller chercher la même valeur dans les 2 autres objets pour trier les objets en fonction de cette valeur...
    Ca veut dire quoi "pour trier les objets en fonction d'une valeur"?
    sorted sait trier par ordre croissant ou décroissant, pas en fonction d'une valeur.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 49
    Par défaut
    Bonjour, l'objet contient un tableau de nombre, il faut trier les objets en fonction du premier nombre dans le tableau de ces objets.

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 776
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 776
    Par défaut
    Citation Envoyé par passio Voir le message
    Bonjour, l'objet contient un tableau de nombre, il faut trier les objets en fonction du premier nombre dans le tableau de ces objets.
    C'est pas en répétant une chose incompréhensible que çà la rend plus intelligible.
    Je sais pas moi, prenez un exemple, partez de 3, 5, 1, 4, 2
    "trier en fonction du premier nombre" donnerait quel résultat?

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 49
    Par défaut
    Le premier nombre de la liste serait 3...

    Nous on a 3 Objets qui contiennent une liste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {"cle1" : Objet1 , "cle2" : Objet2 , "cle3" : Objet3}
    Objet1 contient : [[a,b][a1,b1][a2,b2][aN,bN]].
    Objet2 contient : [[a,b][a1,b1][a2,b2][aN,bN]].
    Objet3 contient : [[a,b][a1,b1][a2,b2][aN,bN]].

    Si a vaut 1.789 dans Objet1
    Si a vaut 1.621 dans Objet2
    Si a vaut 1.824 dans Objet3

    On voudrait retourner (ordre décroissant) : {"cle3" : Objet3, "cle1" : Objet1, "cle2" : Objet2}.


    Il faut trier les objet en fonction de leur a

    Je saurais bricoler un truc mais je voudrais savoir si on peut utiliser sorted.

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 776
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 776
    Par défaut
    Salut,

    Citation Envoyé par passio Voir le message
    Je saurais bricoler un truc mais je voudrais savoir si on peut utiliser sorted.
    à partir du moment vous vous pouvez fabriquer une fonction qui sorte le "a" d'Object, qui sert à trier, on peut le faire.
    Si D = {"cle1" : Objet1 , "cle2" : Objet2 , "cle3" : Objet3}, çà s'écrit: sorted(D.items(), key=f)
    Pour les détails, vous avez le how-to sur le tri avec Python.

    Citation Envoyé par passio Voir le message
    On voudrait retourner (ordre décroissant) : {"cle3" : Objet3, "cle1" : Objet1, "cle2" : Objet2}.
    A priori, vous obtiendrez une liste d'items et non un dictionnaire...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. Réponses: 5
    Dernier message: 22/02/2009, 18h44
  2. Réponses: 3
    Dernier message: 27/01/2009, 18h17
  3. trier une liste d'objets dans une ArrayList
    Par sandrine49 dans le forum Collection et Stream
    Réponses: 9
    Dernier message: 13/10/2008, 08h59
  4. trier une liste d'objets
    Par jeremy_d dans le forum C#
    Réponses: 4
    Dernier message: 12/06/2008, 13h50
  5. Trier une liste d'objets d'après un champ des objets
    Par gids01 dans le forum Collection et Stream
    Réponses: 8
    Dernier message: 02/07/2007, 09h52

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