Tri multi-attributs dans les listes
Le tri d'une liste par un seul attribut est simple à l'aide de la fonction sorted() de Python et de l'argument clé. Cependant, le tri selon plusieurs attributs présente un défi.
Formulation du problème :
Comment pouvons-nous trier rapidement une liste de listes selon plusieurs attributs, tels que ceux mentionnés dans le question originale ?
Solution :
Il existe deux méthodes efficaces pour tri multi-attributs dans les listes :
Utilisation d'une fonction Lambda comme clé :
s = sorted(s, key = lambda x: (x[1], x[2]))
Cette fonction lambda prend chaque sous-liste x et renvoie un tuple contenant les deuxième et troisième éléments, spécifiant effectivement l'ordre de tri basé sur les deux attributs.
**Utilisation de Operator.itemgetter() :
import operator s = sorted(s, key = operator.itemgetter(1, 2))
operator.itemgetter() renvoie une fonction qui extrait les éléments spécifiés de chaque sous-liste, permettant tri basé sur plusieurs attributs.
Dans les deux cas, l'ordre de tri est déterminé par l'ordre des indices d'attribut spécifiés dans la fonction clé ou les arguments itemgetter.
Remarque supplémentaire :
Pour le tri sur place, vous pouvez utiliser s.sort() directement avec le fonction clé :
s.sort(key = operator.itemgetter(1, 2))
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!