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!