Maison  >  Article  >  développement back-end  >  Comment trier une liste de tuples avec une clé dans l’ordre inverse ?

Comment trier une liste de tuples avec une clé dans l’ordre inverse ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-31 16:38:02657parcourir

How to Sort a List of Tuples with One Key in Reverse Order?

Tri d'une liste avec plusieurs clés, dont une dans l'ordre inverse

Lorsque nous travaillons avec des listes de tuples, nous pouvons rencontrer le besoin de trier en fonction de plusieurs critères, dont l'un doit être dans l'ordre inverse. Cet article aborde ce défi en proposant une approche pythonique pour trier une liste selon deux clés, l'une étant triée par ordre croissant et l'autre par ordre décroissant.

Comprendre le problème

Considérez une liste de tuples comme myList = [(ele1A, ele2A),(ele1B, ele2B),(ele1C, ele2C)]. Trier cette liste avec deux clés signifie l'organiser en fonction du premier et du deuxième élément de chaque tuple. Nous pouvons utiliser la fonction sorted() pour trier la liste, en passant une fonction de clé personnalisée qui spécifie les critères de tri :

<code class="python">sortedList = sorted(myList, key = lambda y: (y[0].lower(), y[1]))</code>

Ce code trie la liste par ordre croissant pour les deux clés. Pour trier la première clé par ordre décroissant, on peut utiliser le code suivant :

<code class="python">sortedList = sorted(myList, key = lambda y: (y[0].lower(), -y[1]))</code>

Cependant, ce code trie les deux clés par ordre décroissant. Pour trier uniquement la première clé par ordre décroissant et la deuxième clé par ordre croissant, on peut utiliser le code suivant :

<code class="python">sortedList = sorted(myList, key = lambda y: (-y[0].lower(), y[1]))</code>

Ce code trie les tuples par la première clé par ordre alphabétique inverse (décroissant) et par la deuxième clé par ordre alphabétique (croissant).

Exemple

Appliquons cette méthode de tri à la liste donnée myList :

<code class="python">myList = [('Ele1A', 'Ele2A'), ('Ele1B', 'Ele2B'), ('Ele1C', 'Ele2C')]
sortedList = sorted(myList, key = lambda y: (-y[0].lower(), y[1]))

# Print the sorted list
print(sortedList)</code>

Sortie :

[('Ele1C', 'Ele2C'), ('Ele1B', 'Ele2B'), ('Ele1A', 'Ele2A')]

Comme nous pouvons le voir, la liste est triée par la première clé dans l'ordre alphabétique inverse et par la deuxième clé dans l'ordre alphabétique, satisfaisant les exigences du problème.

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