[Python] fonction de comparaison

Résolu
tinoeldorados -  
 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 ....
A voir également:

2 réponses

kilian Messages postés 8732 Date d'inscription   Statut Modérateur Dernière intervention   1 526
 
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
 
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