Maison > Article > développement back-end > Comment trier des listes de listes avec un ordre mixte ?
Tri des listes de listes avec un ordre mixte
Étant donné une liste de listes comportant deux éléments, les trier dans un ordre spécifique peut être difficile. Généralement, le tri est effectué selon un seul critère. Cependant, dans ce cas, nous devons trier en fonction du premier élément par ordre décroissant et du deuxième élément par ordre croissant.
Pour réaliser ce tri mixte, nous pouvons utiliser les fonctions lambda et la méthode de tri en Python. L'argument clé de la méthode sort prend une fonction qui détermine l'ordre de tri. La fonction que nous fournissons prendra en compte les deux éléments de chaque liste.
Pour créer une clé combinée qui gère les deux éléments, nous pouvons utiliser la fonction lambda suivante :
<code class="python">lambda k: (k[0], -k[1])</code>
Ici, nous sommes en utilisant un tuple pour combiner les deux éléments. Le premier élément représente le premier élément de la liste et le deuxième élément est le négatif du deuxième élément. Cette négation assure l'ordre décroissant pour le deuxième élément.
Maintenant, nous pouvons utiliser cette fonction lambda dans la méthode de tri :
<code class="python">L.sort(key=lambda k: (k[0], -k[1]), reverse=True)</code>
L'argument reverse=True précise que le tri doit être effectué dans l'ordre inverse, ce qui correspond à notre exigence d'ordre décroissant pour le premier élément.
En conséquence, la liste L sera triée avec le premier élément décroissant et le deuxième élément ascendant :
<code class="python">[['b', 1], ['b', 2], ['b', 3], ['a', 1], ['a', 2], ['a', 3]]</code>
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!