[Python] fonction de comparaison

Résolu/Fermé
Signaler
-
 tinoeldorados -
Bonjour,


Voici une ligne d'un code python et je n'arrive pas a la comprendre :
son effet semble : etre de trier des propositions en fonction d'un critere
mais je ne trouve pas le critere ??

self.comp1=lambda tuple1, tuple2 : cmp((-tuple1[1], tuple1[0]) , (-tuple2[1], tuple2[0]))


Merci àd'avance ceux qui m'aideront ....

2 réponses

Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 521
Salut,

self.comp1=lambda tuple1, tuple2 : cmp((-tuple1[1], tuple1[0]) , (-tuple2[1], tuple2[0]))

Lambda permet de créer des fonctions à la volée.
En fait ici, s'il fallait retraduire avec une fonction statique, ça donnerait ça:

def mafunc(tuple1, tuple2):
    return cmp((-tuple1[1], tuple1[0]) , (-tuple2[1], tuple2[0]))

self.comp1 = mafunc


Ensuite, tu peux appeller self.comp1(arg1, arg2) quand tu veux.

merci pour cette explication du lambda ...
Et concernant la seconde partie de la ligne ...
elle permet de classer les element du tuple en fonction de la seconde varaible du Tuple ... tout simplement

Merci