logo

Python – Façons de supprimer les doublons de la liste

Cet article se concentre sur l'une des opérations consistant à obtenir une liste unique à partir d'une liste contenant un éventuel doublon. La suppression des doublons de l'opération de liste a un grand nombre d'applications et il est donc bon d'en avoir connaissance. Python.

lois d'équivalence

Façons de supprimer les doublons de la liste :

Vous trouverez ci-dessous les méthodes que nous aborderons dans cet article :



Supprimez les doublons de la liste à l'aide de la méthode set()

Il s'agit de la manière la plus courante de supprimer les doublons de la liste : méthode set() . Mais l’inconvénient principal et notable de cette approche est que l’ordre des éléments est perdu dans cette méthode particulière.

Python3








# initializing list> test_list>=> [>1>,>5>,>3>,>6>,>3>,>5>,>6>,>1>]> print> (>'The original list is : '> >+> str>(test_list))> # using set() to remove duplicated from list> test_list>=> list>(>set>(test_list))> # printing list after removal> # distorted ordering> print> (>'The list after removing duplicates : '> >+> str>(test_list))>

>

>

Sortir

The original list is : [1, 5, 3, 6, 3, 5, 6, 1] The list after removing duplicates : [1, 3, 5, 6]>

Complexité temporelle : Sur)
Complexité spatiale : Sur)

Supprimez les doublons de la liste à l'aide de la compréhension de liste

Cette méthode fonctionne de manière similaire à la méthode ci-dessus, mais il ne s'agit que d'un raccourci d'une méthode plus longue réalisée à l'aide de compréhension de la liste. commande

Python3




# initializing list> test_list>=> [>1>,>3>,>5>,>6>,>3>,>5>,>6>,>1>]> print>(>'The original list is : '> >+> str>(test_list))> # using list comprehension to remove duplicated from list> res>=> []> [res.append(x)>for> x>in> test_list>if> x>not> in> res]> # printing list after removal> print> (>'The list after removing duplicates : '> >+> str>(res))>

>

>

Sortir

The original list is : [1, 3, 5, 6, 3, 5, 6, 1] The list after removing duplicates : [1, 3, 5, 6]>

Complexité temporelle : Sur)
Complexité spatiale : Sur)

Supprimez les doublons de la liste en utilisant la compréhension de liste avec enumerate()

Le compréhension de liste associé à fonction d'énumération peut également accomplir cette tâche. Il recherche essentiellement les éléments déjà présents et ignore leur ajout. Il préserve l’ordre de la liste.

Python3




# initializing list> test_list>=> [>1>,>5>,>3>,>6>,>3>,>5>,>6>,>1>]> print> (>'The original list is : '> >+> str>(test_list))> # using list comprehension + enumerate() to remove duplicated from list> res>=> [i>for> n, i>in> enumerate>(test_list)>if> i>not> in> test_list[:n]]> # printing list after removal> print> (>'The list after removing duplicates : '> >+> str>(res))>

>

>

Sortir

The original list is : [1, 5, 3, 6, 3, 5, 6, 1] The list after removing duplicates : [1, 5, 3, 6]>

Complexité temporelle : O(n^2)
Complexité spatiale : Sur)

Supprimez les doublons de la liste en python à l'aide de collections.OrderedDict.fromkeys()

C'est la méthode la plus rapide pour accomplir une tâche particulière. Il supprime d'abord les doublons et renvoie un dictionnaire qui doit être converti en liste. Cela fonctionne également bien dans le cas des chaînes.

Python3




# using collections.OrderedDict.fromkeys()> from> collections>import> OrderedDict> # initializing list> test_list>=> [>1>,>5>,>3>,>6>,>3>,>5>,>6>,>1>]> print> (>'The original list is : '> >+> str>(test_list))> # using collections.OrderedDict.fromkeys() to remove duplicated from list> res>=> list>(OrderedDict.fromkeys(test_list))> # printing list after removal> print> (>'The list after removing duplicates : '> >+> str>(res))>

>

>

Sortir

The original list is : [1, 5, 3, 6, 3, 5, 6, 1] The list after removing duplicates : [1, 5, 3, 6]>

Complexité temporelle : Sur)
Complexité spatiale : Sur)

Supprimer les doublons de la liste en utilisant les opérateurs in et non in

En cela, nous parcourons la liste et maintenons avec elle une liste correspondante qui contient l'élément de la liste d'entrée et avant d'ajouter le nouvel élément à la liste correspondante, nous vérifions si l'élément existe déjà ou non dans la liste correspondante et de cette manière nous pouvons supprimer le doublon de la liste d'entrée.

comparer les chaînes java

Python3




# initializing list> test_list>=> [>1>,>5>,>3>,>6>,>3>,>5>,>6>,>1>]> print>(>'The original list is : '> +> str>(test_list))> res>=> []> for> i>in> test_list:> >if> i>not> in> res:> >res.append(i)> # printing list after removal> print>(>'The list after removing duplicates : '> +> str>(res))>

>

>

Sortir

The original list is : [1, 5, 3, 6, 3, 5, 6, 1] The list after removing duplicates : [1, 5, 3, 6]>

Complexité temporelle : O(n^2)
Complexité spatiale : Sur)

Supprimez les doublons de la liste en utilisant compréhension de la liste et méthode Array.index()

Dans cette méthode, nous utilisons la compréhension de liste pour parcourir l'indexation de liste et de tableau afin d'obtenir l'élément d'un tableau. Nous ajoutons les éléments au tableau uniquement si le premier index d'un élément du tableau correspond à l'index actuel de l'élément ou bien néglige l'élément.

Python




# initializing list> arr>=> [>1>,>5>,>3>,>6>,>3>,>5>,>6>,>1>]> print> (>'The original list is : '>+> str>(arr))> # using list comprehension + arr.index()> res>=> [arr[i]>for> i>in> range>(>len>(arr))>if> i>=>=> arr.index(arr[i]) ]> # printing list after removal of duplicate> print>(>'The list after removing duplicates :'> >,res)>

>

>

Sortir

The original list is : [1, 5, 3, 6, 3, 5, 6, 1] ('The list after removing duplicates :', [1, 5, 3, 6])>

Complexité temporelle : O(n^2)
Complexité spatiale : Sur)

Supprimez les doublons de la liste à l'aide du ou Méthode Compteur()

Dans cette méthode, nous utilisons le Méthode Compteur() pour créer un dictionnaire à partir d'un tableau donné. Récupérez maintenant toutes les clés en utilisant clés() méthode qui ne donne que les valeurs uniques de la liste précédente.

Python3




from> collections>import> Counter> # initializing list> arr>=> [>1>,>5>,>3>,>6>,>3>,>5>,>6>,>1>]> print> (>'The original list is : '>+> str>(arr))> # using Counter() + keys() to remove duplicated from list> temp>=> Counter(arr)> res>=> [>*>temp]> # printing list after removal of duplicate> print>(>'The list after removing duplicates :'> >,res)>

>

>

Sortir

The original list is : [1, 5, 3, 6, 3, 5, 6, 1] The list after removing duplicates : [1, 5, 3, 6]>

Complexité temporelle : Sur)
Complexité spatiale : Sur)

Supprimer les doublons de la liste à l'aide de la méthode unique numpy

Cette méthode est utilisée lorsque la liste contient des éléments du même type et permet de supprimer les doublons de la liste. Il convertit d'abord la liste en un tableau numpy puis utilise le méthode numpy unique() pour supprimer tous les éléments en double de la liste.

Remarque : installez le module numpy à l'aide de la commande pip install numpy dupliquer

Python3




# initializing list> test_list>=> [>1>,>5>,>3>,>6>,>3>,>5>,>6>,>1>]> print> (>'The original list is : '> >+> str>(test_list))> > # using numpy> import> numpy as np> > # removing duplicated from list> res>=> np.unique(test_list)> > # printing list after removal> print> (>'The list after removing duplicates : '> >+> str>(res))>

>

>

Sortir

The original list is : [1, 5, 3, 6, 3, 5, 6, 1] The list after removing duplicates : [1 3 5 6]>

Complexité temporelle : Sur)
Complexité spatiale : Sur)

Utiliser le bloc de données Pandas

Le pandas.DataFrame.drop_duplicates() La méthode peut également être utilisée pour supprimer les doublons d’une liste. La méthode renvoie un nouveau DataFrame avec les doublons supprimés et les données du bloc de données d'origine cadre reste inchangé.

Algorithme:

Créez un bloc de données pandas avec la liste. Utilisez la méthode drop_duplicates() sur le DataFram, puis convertissez le DataFrame résultant en liste.

Python3




import> pandas as pd> # initializing list> test_list>=> [>1>,>5>,>3>,>6>,>3>,>5>,>6>,>1>]> print>(>'The original list is : '> +> str>(test_list))> # creating DataFrame> df>=> pd.DataFrame({>'col'>: test_list})> # using drop_duplicates() method> df.drop_duplicates(inplace>=>True>)> # converting back to list> res>=> df[>'col'>].tolist()> # printing list after removal> print>(>'The list after removing duplicates : '> +> str>(res))>

>

>

Sortir:

The original list is : [1, 5, 3, 6, 3, 5, 6, 1] The list after removing duplicates : [1 , 5 , 3, 6]>

Complexité temporelle : La complexité temporelle de la méthode drop_duplicates() est O(n log n) car elle trie les valeurs avant de supprimer les doublons. La conversion de DataFrame en liste prend un temps O(n). Par conséquent, la complexité temporelle globale de cette méthode est O(n log n).

Complexité spatiale : La complexité spatiale de cette méthode est O(n) car un nouveau DataFrame et une liste sont créés, chacun avec n éléments.

la modulation d'amplitude