Bonjour.
Je débute en programmation et j'aimerais trier une liste contenant seulement des chaines de caractères par ordre de la taille de ces chaines mais je ne sais pas comment faire. Y a-t-il un moyen simple de le faire ?
Merci !
Bonjour.
Je débute en programmation et j'aimerais trier une liste contenant seulement des chaines de caractères par ordre de la taille de ces chaines mais je ne sais pas comment faire. Y a-t-il un moyen simple de le faire ?
Merci !
Bonjour,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 L = ["xxxx", "x", "xxxxx", "xx", "xxx"] L.sort(key=lambda v: len(v)) print(L) ['x', 'xx', 'xxx', 'xxxx', 'xxxxx']
Bonjour,
Voici quelques éléments de réflexion si ça peut t'aider.
Il faudra peut-être préciser où tu coinces.
Chaque élément de la liste peut-être défini par la longueur de sa chaîne de caractères.
Après il est facile de comparer la longueur de deux chaines de caractères.
Mais je pense que le problème n'est pas là.
Pour trier des listes, il y a plusieurs méthodes qui sont plus ou moins complexes (qui demandent plus ou moins de temps machine).
Une méthode, mais pas adaptée si la liste est très longue :
On a une liste maliste1.
Créer une liste malistetriee contenant le 1er élément de maliste1.
Prendre le 2ème élément de maliste1
comparer sa longueur avec le 1er élément de malistetriee,
s'il est plus grand avec le suivant,
s'il est plus grand avec le suivant...
sinon l'insérer dans malistetriee(après le précédent)
Faire de même avec successivement tous les éléments de maliste1
Il me semble que l'on peut avantageusement remplacer parL.sort(key=lambda v: len(v))
Code : Sélectionner tout - Visualiser dans une fenêtre à part L.sort(key=len)
Partager