Tri efficace des listes avec plusieurs attributs
Lors de la gestion de listes de listes, il devient nécessaire de les trier efficacement en fonction d'attributs spécifiques. Un scénario courant se produit lorsque nous devons trier simultanément selon plusieurs attributs, comme trier une liste de couleurs et de hauteurs.
Considérez la liste de listes suivante :
[[12, 'tall', 'blue', 1], [2, 'short', 'red', 9], [4, 'tall', 'blue', 13]]
Ordinairement, trier par un seul attribut peut être obtenu en utilisant sorted(s, key = itemgetter(1)). Cependant, pour plusieurs attributs, une approche plus efficace existe.
Une clé peut être définie comme une fonction qui renvoie un tuple. En utilisant une fonction lambda ou itemgetter, nous pouvons créer une clé qui prend en compte plusieurs attributs :
Fonction Lambda :
s = sorted(s, key = lambda x: (x[1], x[2]))
Utilisation d'Itemgetter (plus rapide) :
import operator s = sorted(s, key = operator.itemgetter(1, 2))
De plus, la méthode de tri peut être utilisée directement avec le clé :
s.sort(key = operator.itemgetter(1, 2))
Avec cette approche, la liste sera efficacement triée en fonction des attributs spécifiés. Cette méthode est considérablement plus rapide et évite les appels de fonctions Python inutiles.
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!