Tri d'une liste imbriquée avec des éléments décroissants et ascendants
En Python, vous pouvez rencontrer des scénarios dans lesquels vous devez trier une liste contenant des listes imbriquées avec des critères de tri spécifiques. Considérons une liste comme celle-ci :
['a',1] ['a',2] ['a',3] ['b',1] ['b',2] ['b',3]
La tâche est de trier cette liste de manière à ce que l'élément 0 (la lettre) soit trié par ordre décroissant, tandis que l'élément 1 (le nombre) soit trié par ordre croissant. La liste résultante devrait ressembler à :
['b',1] ['b',2] ['b',3] ['a',1] ['a',2] ['a',3]
Pour réaliser ce tri, nous pouvons utiliser la fonction de tri intégrée de Python ainsi qu'une fonction de clé personnalisée qui trie en fonction de plusieurs critères. La fonction clé prendra chaque liste imbriquée en entrée et générera un tuple qui servira de clé de tri.
L'extrait de code suivant montre comment trier la liste imbriquée à l'aide de la fonction clé personnalisée :
<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)</code>
Dans ce code, la fonction key génère un tuple en utilisant le premier élément (lettre) et la négation du deuxième élément (nombre). La négation du deuxième élément nous permet d’effectuer le tri ascendant des nombres. L'argument supplémentaire reverse=True dans la fonction de tri assure un tri décroissant basé sur la clé du tuple.
En conséquence, la liste L sera désormais triée comme vous le souhaitez :
[['b', 1], ['b', 2], ['b', 3], ['a', 1], ['a', 2], ['a', 3]]
Cette approche fournit un moyen polyvalent de trier des structures de données complexes telles que des listes imbriquées avec plusieurs critères de tri.
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!