Python : supprimer les éléments en double d'une liste

Document 对象参考手册Exemples Python3

Dans ce chapitre, nous allons apprendre comment supprimer les éléments en double d'une liste.

Points clés :

  • Ensemble Python: Un ensemble est une séquence non ordonnée d'éléments uniques.

  • Liste Python: Une liste est une séquence finie d'éléments de données, c'est-à-dire une collection d'éléments de données disposés dans un certain ordre linéaire. Les opérations de base effectuées sur cette structure de données incluent la recherche, l'insertion et la suppression d'éléments.

Exemple

list_1 = [1, 2, 1, 4, 6]

print(list(set(list_1)))

Après exécution du code ci-dessus, la sortie est :

[1, 2, 4, 6]

Dans l'exemple ci-dessus, nous convertissons d'abord la liste en ensemble, puis la reconvertissons en liste. Un ensemble ne peut pas contenir d'éléments en double, donc set() supprime les éléments en double.

Si vous devez préserver l'ordre des éléments de la liste d'origine, vous pouvez utiliser un ensemble auxiliaire pour suivre les éléments déjà vus, puis construire une nouvelle liste.

Exemple

# Utiliser un ensemble auxiliaire pour dédupliquer tout en préservant l'ordre
def remove_duplicates(lst):
    seen = set()
    unique_list = []
    for item in lst:
        if item not in seen:
            seen.add(item)
            unique_list.append(item)
    return unique_list

# Exemple
original_list = [1, 2, 2, 3, 4, 4, 5]
unique_list = remove_duplicates(original_list)
print(unique_list)  # Sortie : [1, 2, 3, 4, 5]

Utilisation de dict.fromkeys()

La méthode dict.fromkeys() peut également être utilisée pour la déduplication tout en préservant l'ordre, car les dictionnaires conservent l'ordre d'insertion dans Python 3.7 et versions ultérieures.

Exemple

# Utiliser dict.fromkeys() pour dédupliquer tout en préservant l'ordre
def remove_duplicates(lst):
    return list(dict.fromkeys(lst))

# Exemple
original_list = [1, 2, 2, 3, 4, 4, 5]
unique_list = remove_duplicates(original_list)
print(unique_list)  # Sortie : [1, 2, 3, 4, 5]

Après exécution du code ci-dessus, la sortie est :

[1, 2, 3, 4, 5]

Utilisation de la compréhension de liste

La compréhension de liste combinée à des vérifications conditionnelles peut également réaliser la déduplication.

Exemple

# Utiliser la compréhension de liste pour dédupliquer
def remove_duplicates(lst):
    unique_list = []
    [unique_list.append(item) for item in lst if item not in unique_list]
    return unique_list

# Exemple
original_list = [1, 2, 2, 3, 4, 4, 5]
unique_list = remove_duplicates(original_list)
print(unique_list)  # Sortie : [1, 2, 3, 4, 5]

Supprimer les éléments en double de deux listes

Dans l'exemple suivant, les éléments qui existent dans les deux listes sont supprimés.

Exemple

list_1 = [1, 2, 1, 4, 6]
list_2 = [7, 8, 2, 1]

print(list(set(list_1) ^ set(list_2)))

Tout d'abord, utilisez set() pour convertir les deux listes en deux ensembles, afin de supprimer les éléments en double des listes.

Ensuite, utilisez l'^opérateur pour obtenir la différence symétrique des deux listes.

Après exécution du code ci-dessus, la sortie est :

[4, 6, 7, 8]

Tout d'abord, convertissez les deux listes en deux ensembles pour supprimer les doublons de chaque liste.

Ensuite,^donne la différence symétrique des deux listes (à l'exclusion des éléments communs aux deux ensembles).

Document 对象参考手册Exemples Python3

Autres extensions