Python Programming

Déduplication efficace de listes en Python

Spread the love

Supprimer les éléments dupliqués d’une liste, un processus appelé déduplication, est une tâche courante en Python. La meilleure approche dépend du besoin de préserver l’ordre original des éléments. Cet article explore deux méthodes efficaces : l’une privilégiant la vitesse et l’autre préservant l’ordre.

Table des matières

Dédupliquer une liste (non ordonnée)

Dans les situations où l’ordre des éléments n’est pas critique, l’utilisation du type set intégré de Python offre la solution la plus rapide. Les ensembles ne stockent intrinsèquement que des éléments uniques. Convertir une liste en un ensemble, puis à nouveau en liste, supprime efficacement les doublons.

my_list = [1, 2, 2, 3, 4, 4, 5, 1]
unique_list = list(set(my_list))
print(unique_list)  # Sortie : [1, 2, 3, 4, 5] (l'ordre peut varier)

La concision et l’efficacité de cette méthode découlent de la nature optimisée des opérations sur les ensembles. Cependant, notez que l’ordre de la liste de sortie peut différer de l’original.

Dédupliquer une liste (ordonnée)

Le maintien de l’ordre d’origine nécessite une approche légèrement plus complexe. Nous allons parcourir la liste, en suivant les éléments déjà vus à l’aide d’un ensemble. Seuls les éléments non encore rencontrés sont ajoutés à une nouvelle liste.

my_list = [1, 2, 2, 3, 4, 4, 5, 1]
seen = set()
unique_list = []

for item in my_list:
    if item not in seen:
        unique_list.append(item)
        seen.add(item)

print(unique_list)  # Sortie : [1, 2, 3, 4, 5] (ordre d'origine préservé)

Cette méthode itère une fois, utilisant l’ensemble seen pour des recherches efficaces en O(1) en moyenne, garantissant de bonnes performances même pour les grandes listes. L’avantage principal est la préservation de l’ordre d’origine.

Choisir la bonne méthode :

Privilégiez la deuxième méthode (ordonnée) lorsque la préservation de l’ordre d’origine est cruciale. Si l’ordre est sans importance, la première méthode (non ordonnée) offre une vitesse et une simplicité supérieures. Pour les listes extrêmement longues où les performances sont primordiales et l’ordre n’est pas important, l’approche basée sur les ensembles est la meilleure.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *