Python : supprimer les éléments en double d'une liste
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
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
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
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
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_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).
Autres extensions
Exemples Python3