Maison  >  Article  >  développement back-end  >  Comment trier des listes de listes dans un ordre alterné en Python ?

Comment trier des listes de listes dans un ordre alterné en Python ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-21 16:56:02341parcourir

How to Sort Lists of Lists in Alternating Order in Python?

Tri des listes de listes dans un ordre alterné

Étant donné une liste contenant des sous-listes au format [['a',1], [' a',2], ['a',3], ['b',1], ['b',2], ['b',3]], le but est de trier ces sous-listes de manière alternée , avec l'élément 0 trié par ordre décroissant et l'élément 1 trié par ordre croissant. Le résultat attendu est [['b',1], ['b',2], ['b',3], ['a',1], ['a',2], ['a', 3]].

Pour y parvenir, on peut exploiter la fonction sort() avec une clé personnalisée. La clé est une fonction lambda qui extrait les éléments d'intérêt et leur applique une opération de tri. Dans ce cas, il récupère le premier élément de chaque sous-liste, applique un tri décroissant, puis le combine avec le négatif du deuxième élément, trié par ordre croissant. En inversant l'ordre de tri avec reverse=True, les sous-listes sont triées par ordre décroissant par le premier élément et par ordre croissant par le deuxième élément. Il en résulte l'ordre alterné souhaité.

L'extrait de code suivant illustre la 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)

print(L)
# [['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!

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