Maison > développement back-end > Tutoriel Python > Comment puis-je trier efficacement une liste de listes par plusieurs attributs en Python ?

Comment puis-je trier efficacement une liste de listes par plusieurs attributs en Python ?

Barbara Streisand
Libérer: 2024-12-10 22:52:15
original
203 Les gens l'ont consulté

How Can I Efficiently Sort a List of Lists by Multiple Attributes in Python?

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 :

  1. Utilisation d'une fonction Lambda comme clé :

    s = sorted(s, key = lambda x: (x[1], x[2]))
    Copier après la connexion

    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.

  2. **Utilisation de Operator.itemgetter() :

    import operator
    s = sorted(s, key = operator.itemgetter(1, 2))
    Copier après la connexion

    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))
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal