Tri d'une liste avec une clé dans l'ordre inverse et l'autre casse sans sensibilité
Python fournit diverses méthodes pour trier les listes, y compris le tri par plusieurs clés. Cependant, les fonctions de tri standard peuvent ne pas toujours offrir la flexibilité souhaitée.
Considérez une liste contenant des tuples avec plusieurs éléments, tels que [(ele1A, ele2A), (ele1B, ele2B), (ele1C, ele2C)] . Pour trier cette liste en fonction de deux clés, l'une par ordre croissant et l'autre par ordre décroissant, tout en garantissant l'insensibilité à la casse dans une clé, vous devez utiliser une approche de tri légèrement personnalisée.
Fonction sorted() de Python vous permet de spécifier une clé de tri personnalisée via une fonction lambda. En utilisant cette fonctionnalité, vous pouvez trier la liste comme suit :
<code class="python"># Sort by the first key in ascending order and the second key in descending order sortedList = sorted(myList, key = lambda y: (y[0].lower(), -y[1])) # Or, sort by the first key in descending order and the second key in ascending order sortedList = sorted(myList, key = lambda y: (-y[0].lower(), y[1])) # Or, sort by both keys in descending order sortedList = sorted(myList, key = lambda y: (-y[0].lower(), -y[1]))</code>
En annulant la valeur de la deuxième clé (-y[1]) dans la fonction lambda, vous la triez effectivement dans l'ordre inverse. De plus, vous utilisez lower() sur la première clé pour garantir l'insensibilité à la casse lors de l'exécution du tri.
Cette approche vous permet de trier votre liste de manière flexible en fonction de critères complexes, vous permettant ainsi de gérer efficacement les exigences de tri spécifiques.
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!