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

Susan Sarandon
Libérer: 2024-10-31 16:38:02
original
730 Les gens l'ont consulté

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

Sortie :

[('Ele1C', 'Ele2C'), ('Ele1B', 'Ele2B'), ('Ele1A', 'Ele2A')]
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal