Je voudrais trier la liste suivante de listes par le quatrième élément (le nombre entier) dans chaque liste individuelle.
unsorted_list = [['a','b','c','5','d'],['e','f','g','3','h'],['i','j','k','4','m']]
Comment puis-je faire ? Merci.
Je voudrais trier la liste suivante de listes par le quatrième élément (le nombre entier) dans chaque liste individuelle.
unsorted_list = [['a','b','c','5','d'],['e','f','g','3','h'],['i','j','k','4','m']]
Comment puis-je faire ? Merci.
Utilisez sorted()
avec un key
comme suit -
>>> unsorted_list = [['a','b','c','5','d'],['e','f','g','3','h'],['i','j','k','4','m']]
>>> sorted(unsorted_list, key = lambda x: int(x[3]))
[['e', 'f', 'g', '3', 'h'], ['i', 'j', 'k', '4', 'm'], ['a', 'b', 'c', '5', 'd']]
Le site lambda
renvoie le quatrième élément de chacune des listes internes et la fonction sorted
utilise cette fonction pour trier ces listes. Cela suppose que int(elem)
n'échouera pas pour la liste.
Ou utilisez itemgetter
(Comme l'a souligné le commentaire d'Ashwini, cette méthode ne fonctionnerait pas si vous avez des représentations de chaînes de caractères pour les nombres, car elles sont vouées à échouer quelque part pour les nombres à plus de 2 chiffres).
>>> from operator import itemgetter
>>> sorted(unsorted_list, key = itemgetter(3))
[['e', 'f', 'g', '3', 'h'], ['i', 'j', 'k', '4', 'm'], ['a', 'b', 'c', '5', 'd']]
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.