Trier une liste de listes en Python

Samyak Jain 10 octobre 2023
  1. Utilisez la fonction itemgetter() du module Operator avec la fonction sorted() pour trier une liste de listes en Python
  2. Utilisez l’expression lambda avec la fonction sorted() pour trier une liste de listes en Python
  3. Utilisez la fonction sort() pour trier une liste de listes en Python
Trier une liste de listes en Python

Une liste est l’une des structures de données les plus puissantes utilisées en Python. Nous pouvons trier une liste en Python en organisant tous ses éléments dans l’ordre croissant ou décroissant en fonction de l’exigence.

On peut aussi avoir des listes imbriquées en Python. Ceux-ci peuvent être considérés comme une liste de listes. Le tri d’une liste de listes organise toutes les listes internes en fonction de l’index spécifié comme clé.

Dans ce tutoriel, nous allons trier une liste de listes en Python en fonction de certains index.

Utilisez la fonction itemgetter() du module Operator avec la fonction sorted() pour trier une liste de listes en Python

La fonction sorted() permet de trier une liste en Python. Par défaut, il trie la liste par ordre croissant. La fonction itemgetter() du module opérateur prend un numéro d’index comme paramètre et renvoie l’élément de l’ensemble de données placé à ce numéro d’index.

Par conséquent, la fonction sorted(List_name, key=itemgetter(index_number)) trie une liste de listes par l’élément positionné au numéro d’index spécifié de chaque liste interne.

Par example,

from operator import itemgetter

A = [[10, 8], [90, 2], [45, 6]]
print("Sorted List A based on index 0: % s" % (sorted(A, key=itemgetter(0))))
B = [[50, "Yes"], [20, "No"], [100, "Maybe"]]
print("Sorted List B based on index 1: % s" % (sorted(B, key=itemgetter(1))))

Production:

Sorted List A based on index 0: [[10, 8], [45, 6], [90, 2]]
Sorted List B based on index 1: [[100, 'Maybe'], [20, 'No'], [50, 'Yes']]

Pour trier une liste de listes par ordre décroissant, le paramètre reverse est utilisé avec le paramètre key et le nom de la liste dans la fonction sorted().

Par example,

from operator import itemgetter

C = [[10, 8, "Cat"], [90, 2, "Dog"], [45, 6, "Bird"]]
print(
    "Reversed sorted List C based on index 1: % s"
    % (sorted(C, key=itemgetter(1), reverse=True))
)

Production:

Reverse sorted List C based on index 1: [[10, 8, 'Cat'], [45, 6, 'Bird'], [90, 2, 'Dog']]

Utilisez l’expression lambda avec la fonction sorted() pour trier une liste de listes en Python

Les expressions lambda sont des fonctions simples sur une ligne en Python.

La fonction sorted(List_name, key=lambda x:x[index_number]) est utilisée pour trier une liste de listes par l’élément positionné au numéro d’index spécifié de chaque liste interne.

Par example,

A = [[100, "Yes"], [40, "Maybe"], [60, "No"]]
print("Sorted List A based on index 0: % s" % (sorted(A, key=lambda x: x[0])))
B = [[2, "Dog"], [0, "Bird"], [7, "Cat"]]
print("Sorted List A based on index 1: % s" % (sorted(B, key=lambda x: x[1])))

Production:

Sorted List A based on index 0: [[40, 'Maybe'], [60, 'No'], [100, 'Yes']]
Sorted List B based on index 1: [[0, 'Bird'], [7, 'Cat'], [2, 'Dog']]

De même, nous pouvons utiliser le paramètre reverse pour obtenir la sortie par ordre décroissant.

Par example,

C = [[60, 5], [90, 7], [30, 10]]
print(
    "Reversed sorted List C based on index 0: % s"
    % (sorted(C, key=lambda x: x[0], reverse=True))
)

Production:

Reversed sorted List C based on index 0: [[90, 7], [60, 5], [30, 10]]

Utilisez la fonction sort() pour trier une liste de listes en Python

La méthode sort() trie la liste des listes en Python en fonction du premier élément de chaque liste interne. Cette méthode apporte des modifications à la liste d’origine elle-même. Nous utilisons le paramètre reverse pour trier par ordre décroissant.

Par example,

A = [[55, 90], [45, 89], [90, 70]]
A.sort()
print("New sorted list A is % s" % (A))
A.sort(reverse=True)
print("New reverse sorted list A is % s" % (A))

Production:

New sorted list A is [[45, 89], [55, 90], [90, 70]]
New reverse sorted list A is [[90, 70], [55, 90], [45, 89]]

Pour trier la liste donnée en fonction de la longueur des listes internes, le paramètre key=len est utilisé.

Par example,

A = [[5, 90, "Hi", 66], [80, 99], [56, 32, 80]]
A.sort(key=len)
print("New sorted list A is % s" % (A))

Production:

New sorted list A is [[80, 99], [56, 32, 80], [5, 90, 'Hi', 66]]

Article connexe - Python List