sorted : sorted(iterable, cmp=None, key=None, reverse=False) -> liste
triée
Renvoie une liste d’éléments triés en fonction des éléments de l’objet itérable fourni.
sorted() utilise une fonction de comparaison à laquelle il passe les éléments deux à
deux de l’itérable :
• Si cmp est fourni, la fonction est utilisée pour comparer les éléments deux à deux
dans l’algorithme de tri. cmp(element1, element2) doit renvoyer -1, 0 ou 1.
• Si key est fourni, elle pointe sur une fonction qui sera utilisée au moment des
appels aux éléments dans la fonction de comparaison : chaque élément sera trans-
formé par key(element) avant la comparaison.
Lorsque key n’est pas fourni, ce sont les éléments qui sont directement passés à la
fonction de comparaison. Enfin, lorsque cmp n’est pas fourni, sorted() utilise une
fonction de comparaison générique.
reverse
permet d’inverser le résultat obtenu.
Combinaisons possibles pour sorted
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
def cmp(elt1, elt2):
if elt1 > elt2:
res = -1
elif elt1 < elt2:
res = 1
else:
res = 0
print('cmp(%s, %s) = %s'%(elt1, elt2, res))
return res
def key(elt):
res = -ord(elt)
print("key('%s') = %s"%(elt, res))
return res
sorted(['c', 'a', 'b'], cmp=cmp, key=key)
key('c') = -99
key('a') = -97
key('b') = -98
cmp(-97, -99) = -1
cmp(-98, -97) = 1
cmp(-98, -99) = -1
cmp(-98, -97) = 1
['a', 'b', 'c'] |
Partager