Utiliser des clés de tri pour le tri multi-attributs des listes
Le tri d'une liste de listes en fonction d'attributs individuels est souvent simple. Cependant, lorsque plusieurs attributs sont impliqués, un dilemme se pose. Pouvons-nous trier efficacement sans plusieurs tours de tri ?
Pour relever ce défi, nous introduisons le concept de clés de tri. Une clé de tri agit comme une fonction qui attribue une valeur unique à chaque élément de la liste, déterminant l'ordre de tri.
Par exemple, dans la liste donnée :
[[12, 'tall', 'blue', 1], [2, 'short', 'red', 9], [4, 'tall', 'blue', 13]]
Pour trier par à la fois « grand/court » et « couleur », nous pouvons définir une fonction clé qui renvoie un tuple basé sur ces attributs :
key = lambda x: (x[1], x[2])
En utilisant cette clé, nous peut trier la liste à l'aide de la fonction sorted :
s = sorted(s, key = key)
Alternativement, nous pouvons exploiter la fonction itemgetter pour des performances plus rapides :
import operator s = sorted(s, key = operator.itemgetter(1, 2))
De plus, nous pouvons trier directement la liste à l'aide de la fonction sort fonction avec la clé spécifiée :
s.sort(key = operator.itemgetter(1, 2))
Avec les clés triées, nous obtenons un tri multi-attributs efficace sans avoir besoin de tris multiples passe.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!