Cette question est actuellement adaptée de one previously asked by Mat.S (image). Bien qu'il ait été supprimé, j'ai pensé que c'était une bonne question, alors je le repositionne avec des exigences plus claires et ma propre solution.Tri d'une liste: nombres en croissant, lettres en ordre décroissant
Étant donné une liste de lettres et de chiffres, disent
['a', 2, 'b', 1, 'c', 3]
L'exigence est de trier les nombres par ordre croissant et des lettres en ordre descendant, sans modifier la position relative des lettres et des chiffres. Par là, je veux dire que si la liste non triée est:
[L, D, L, L, D] # L -> letter; # D -> digit
Ensuite, la liste triée doit également être
[L, D, L, L, D]
Les lettres et les chiffres ne pas nécessairement alternent dans un schéma régulier - ils peuvent apparaître dans n'importe quel ordre arbitraire
Après le tri - les nombres sont ascendants, les lettres sont descendantes.
Pour l'exemple ci-dessus, la sortie est
['c', 1, 'b', 2, 'a', 3]
Un autre exemple:
In[]: [5, 'a', 'x', 3, 6, 'b']
Out[]: [3, 'x', 'b', 5, 6, 'a']
Quelle serait une bonne façon de le faire?
ressemble beaucoup comme celui-là: https://stackoverflow.com/questions/44685760/how- to-sort-a-list-only-sorting-cordes –
@ cssᴘᴇᴇᴅ: pour éviter ceux qui ne comprennent pas que ce site encourage l'auto-réponse, j'ai déjà posté un commentaire sous ma question: * PS. Certains peuvent penser que c'est faux que je réponde à ma propre question juste après l'avoir publiée. Avant de passer à l'action, veuillez lire [Il est OK de poser et de répondre à vos questions] (http://blog.stackoverflow.com/2011/07/its-ok-to-ask-and-answer-your-own-questions/) . * –
@ Jean-François Fabre Haha se souvient vaguement de celui-là. Oui c'est un peu similaire. Je suppose que j'ai pris l'autre truc involontairement. –