Tri d'une liste de listes par ordre décroissant et croissant
Étant donné une liste de listes à deux éléments, le but est de trier les listes d'abord par ordre décroissant en fonction du premier élément, puis par ordre croissant en fonction du deuxième élément.
Pour y parvenir, nous pouvons utiliser la méthode sort() avec une fonction clé personnalisée. Voici une solution :
<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é de la méthode sort() spécifie une fonction qui détermine l'ordre de tri. Dans ce cas, nous définissons une fonction lambda qui prend une liste k et renvoie un tuple. Le premier élément du tuple est le premier élément de la liste k[0], qui est utilisé pour le tri décroissant. Le deuxième élément est la négation du deuxième élément de la liste -k[1], qui est utilisé pour le tri ascendant.
En triant d'abord par ordre décroissant, reverse=True garantit que le premier élément de chaque liste (« a » ou « b ») est trié par ordre alphabétique inverse. Par la suite, le tri ascendant du deuxième élément aboutit à une liste globale triée comme :
[['b', 1], ['b', 2], ['b', 3], ['a', 1], ['a', 2], ['a', 3]]
Cela permet effectivement d'atteindre le critère de tri souhaité.
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!