[Python] fonction de comparaison

Résolu/Fermé
tinoeldorados - 27 nov. 2008 à 10:23
 tinoeldorados - 27 nov. 2008 à 11:34
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 ....
A voir également:

2 réponses

kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
27 nov. 2008 à 11:18
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.
0
tinoeldorados
27 nov. 2008 à 11:34
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
0