Recherche des doublons dans les listes
En Python, la recherche des doublons dans une liste peut être réalisée de plusieurs manières, en fonction des exigences spécifiques .
Utiliser des ensembles
Les ensembles en Python sont collections non ordonnées qui éliminent automatiquement les éléments en double. Pour supprimer les doublons d'une liste et créer une nouvelle liste avec l'ordre d'origine, utilisez simplement l'expression set(a).
Obtenir la liste des doublons
Si vous Si vous avez besoin d'une liste des éléments en double, vous pouvez utiliser un dictionnaire pour compter les occurrences de chaque élément dans la liste d'origine. Les éléments dont le nombre est supérieur à un sont considérés comme des doublons. Le code suivant illustre cette approche :
a = [1,2,3,2,1,5,6,5,5,5] import collections print([item for item, count in collections.Counter(a).items() if count > 1]) # Output: [1, 2, 5]
Utilisation de Set Intersection
Une autre méthode pour rechercher des doublons consiste à créer un ensemble d'éléments uniques à partir de la liste d'origine à l'aide de set (un). Ensuite, vous pouvez trouver les doublons en croisant cet ensemble avec la liste d'origine.
Exemple avec des éléments non hachables
Si les éléments de votre liste ne sont pas hachables ( par exemple, des listes ou des dictionnaires), vous pouvez utiliser une approche par force brute en parcourant toutes les paires d'éléments et en les comparant pour égalité.
Exemple de code :
a = [[1], [2], [3], [1], [5], [3]] no_dupes = [x for n, x in enumerate(a) if x not in a[:n]] print(no_dupes) # [[1], [2], [3], [5]] dupes = [x for n, x in enumerate(a) if x in a[:n]] print(dupes) # [[1], [3]]
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!