Trier un tableau 2D en Python

Muhammad Maisam Abbas 30 janvier 2023
  1. Trier un tableau 2D par numéro de colonne à l’aide de la fonction sort() en Python
  2. Trier un tableau 2D par numéro de colonne à l’aide de la fonction sorted() en Python
Trier un tableau 2D en Python

Nous présenterons différentes méthodes pour trier les tableaux multidimensionnels en Python.

Il existe des fonctions intégrées telles que sort() et sorted() pour le tri de tableau ; ces fonctions nous permettent également de prendre une clé spécifique que nous pouvons utiliser pour définir quelle colonne trier si nous le voulons.

La méthode sort() modifie la liste sur place, et une fonction intégrée sorted() construit une nouvelle liste triée à partir d’un itérable. Nous verrons également les différentes méthodes pour définir iterable pour les fonctions sort() et sorted().

Trier un tableau 2D par numéro de colonne à l’aide de la fonction sort() en Python

Afin de trier le tableau par numéro de colonne, nous devons définir la key dans la fonction sort() telle que,

lst = [["John", 5], ["Jim", 9], ["Jason", 0]]

lst.sort(key=lambda x: x[1])
print(lst)

Production :

[['Jason', 0], ['John', 5], ['Jim', 9]]

Pour des raisons de tri, le paramètre key doit être défini sur la valeur d’une fonction qui accepte un seul argument et renvoie une key qui peut être utilisée dans le processus de tri. Il est possible d’effectuer cette stratégie rapidement car la fonction clé n’est appelée qu’une seule fois pour chaque enregistrement d’entrée.

Un modèle fréquemment utilisé consiste à trier des objets complexes en utilisant un ou plusieurs des indices de l’objet comme clé.

lst = [
    ("john", "C", 15),
    ("jane", "A", 12),
    ("dave", "D", 10),
]

lst.sort(key=lambda lst: lst[2])
print(lst)

Production :

[('dave', 'D', 10), ('jane', 'A', 12), ('john', 'C', 15)]

Dans le code ci-dessus à key=lambda lst:lst[2], le lst[2] définit quelle colonne doit être utilisée pour la base de tri. Dans notre cas, lst est trié par la troisième colonne.

Trier un tableau 2D par numéro de colonne à l’aide de la fonction sorted() en Python

Afin de trier le tableau par numéro de colonne, nous devons définir la key dans la fonction sorted() telle que,

li = [["John", 5], ["Jim", 9], ["Jason", 0]]

sorted_li = sorted(li, key=lambda x: x[1])
print(sorted_li)

Production :

[['Jason', 0], ['John', 5], ['Jim', 9]]

Notez que la fonction sorted() renvoie une nouvelle liste dans le code précédent, alors que la fonction sort() remplace la liste d’origine.

La clé peut également être définie alternativement en utilisant itemgetter de la bibliothèque operator.

from operator import itemgetter

lst = [
    ("john", "C", 15),
    ("jane", "A", 12),
    ("dave", "D", 10),
]

sorted_lst = sorted(lst, key=itemgetter(1))
print(sorted_lst)

Production :

[('jane', 'A', 12), ('john', 'C', 15), ('dave', 'D', 10)]
Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

Article connexe - Python Array