Classement

Résolu/Fermé
JFL - 7 mars 2022 à 11:58
 JFL - 7 mars 2022 à 13:32
Bonjour,

J'ai une liste de chaines de caractères a = ['ab' ,'cda', 'abcdef'] et je n'arrive pas à l'ordonner de la plus courte à la plus longue chaîne; sort ne convient évidemment pas. Pourriez -vous me conseiller ? Merci beaucoup.

a = ['ab' ,'cda', 'abcdef']
a.sort()
print (a)

3 réponses

yg_be Messages postés 23235 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 30 septembre 2024 Ambassadeur 1 538
7 mars 2022 à 12:09
bonjour, sort convient, mais ne peut pas deviner qu'il doit trier sur la longueur, il faut le lui préciser:
a.sort(key=len)
1
jordane45 Messages postés 38241 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 septembre 2024 4 689
7 mars 2022 à 12:11
Bonjour,

Comme indiqué dans la documentation

list.sort() et sorted() ont un paramètre key afin de spécifier une fonction (ou autre appelable) qui peut être appelée sur chaque élément de la liste avant d'effectuer des comparaisons.

Exemple
liste=["carotte","patates","haricot","pamplemousse",'pois',"champignon","pêche"]
liste.sort(key=lambda item:len(item))
print(liste)

0
merci beaucoup
0