Maison  >  Article  >  développement back-end  >  Comment trier une liste imbriquée par ordre croissant et décroissant en Python ?

Comment trier une liste imbriquée par ordre croissant et décroissant en Python ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-21 16:42:02975parcourir

How to Sort a Nested List Ascending and Descending in Python?

Comment trier une liste imbriquée par ordre croissant et décroissant

En Python, vous pouvez rencontrer des situations où vous avez une liste qui contient des sous-listes , et vous devez les trier d'une manière spécifique, par exemple en triant le premier élément par ordre décroissant et le deuxième élément par ordre croissant.

Pour y parvenir, vous pouvez utiliser l'argument clé dans le sort() fonction. Cet argument vous permet de spécifier comment les éléments doivent être comparés pour le tri. Dans ce cas, nous avons besoin d'une fonction de tri personnalisée :

<code class="python">L = [['a', 1], ['a', 2], ['a', 3], ['b', 1], ['b', 2], ['b', 3]]
L.sort(key=lambda k: (k[0], -k[1]), reverse=True)</code>

L'argument clé prend une fonction lambda comme valeur. Cette fonction reçoit un élément k représentant une sous-liste, et renvoie un tuple : (k[0], -k[1]).

  • k[0] est le premier élément de la sous-liste, qui nous voulons trier par ordre décroissant.
  • -k[1] est le négatif du deuxième élément, que nous voulons trier par ordre croissant. En inversant le signe, nous obtenons l'ordre croissant.

En spécifiant reverse=True, nous trions la liste résultante par ordre décroissant en fonction des tuples renvoyés par la fonction lambda.

Comme En conséquence, la liste L contient désormais :

<code class="python">[['b', 1], ['b', 2], ['b', 3], ['a', 1], ['a', 2], ['a', 3]]</code>

Cette démonstration montre comment trier efficacement une liste imbriquée à l'aide d'une fonction de tri personnalisée basée sur l'argument clé de la fonction sort().

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!

Déclaration:
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