logo

Python | Obtenez des valeurs uniques à partir d'une liste

Dans cet article, nous explorerons diverses techniques et stratégies pour extraire efficacement des éléments distincts d'une liste donnée. En explorant des méthodes allant des boucles traditionnelles aux approches pythoniques modernes avec Python.

  Input : [  1,2, 1, 1, 3, 4, 3, 3, 5 ]   Output :   [1, 2, 3, 4, 5]    Explaination:   The output only contains the unique element from the input list.>

Obtenez des valeurs uniques à partir d'une liste

Voici les sujets que nous aborderons dans cet article :

  • Traversée du liste
  • En utilisant Ensemble méthode
  • En utilisant fonction réduire()
  • En utilisant Opérateur.countOf() méthode
  • En utilisant module pandas
  • En utilisant numpy.unique
  • En utilisant collections.Compteur()
  • En utilisant dict.fromkeys()

Obtenez des valeurs uniques à partir d'une liste par Traversée de la liste

En utilisant le parcours, nous pouvons parcourir chaque élément de la liste et vérifier si l'élément est déjà dans la liste_unique s'il n'est pas là-bas, nous pouvons alors l'ajouter à la liste_unique. Cela se fait en utilisant un pour la boucle et une autre instruction if qui vérifie si la valeur est dans la liste unique ou non, ce qui est équivalent à une autre pour une boucle.



Python3




# function to get unique values> def> unique(list1):> ># initialize a null list> >unique_list>=> []> ># traverse for all elements> >for> x>in> list1:> ># check if exists in unique_list or not> >if> x>not> in> unique_list:> >unique_list.append(x)> ># print list> >for> x>in> unique_list:> >print> x,> # driver code> list1>=> [>10>,>20>,>10>,>30>,>40>,>40>]> print>(>'the unique values from 1st list is'>)> unique(list1)> list2>=> [>1>,>2>,>1>,>1>,>3>,>4>,>3>,>3>,>5>]> print>(>' the unique values from 2nd list is'>)> unique(list2)>

>

>

Sortir

the unique values from 1st list is 10 20 30 40 the unique values from 2nd list is 1 2 3 4 5>

Complexité temporelle : O(n*n)
Espace auxiliaire : Sur)

Obtenez des valeurs uniques à partir d'une liste Utilisation de la méthode Set

En utilisant ensemble() propriété de Python, nous pouvons facilement vérifier les valeurs uniques. Insérez les valeurs de la liste dans un ensemble. Set ne stocke une valeur qu'une seule fois, même si elle est insérée plusieurs fois. Après avoir inséré toutes les valeurs de l'ensemble par list_set=set(list1), convertissez cet ensemble en liste pour l'imprimer.

Python3


alphabet aux chiffres



def> unique(list1):> ># insert the list to the set> >list_set>=> set>(list1)> ># convert the set to the list> >unique_list>=> (>list>(list_set))> >for> x>in> unique_list:> >print> x,> # driver code> list1>=> [>10>,>20>,>10>,>30>,>40>,>40>]> print>(>'the unique values from 1st list is'>)> unique(list1)> list2>=> [>1>,>2>,>1>,>1>,>3>,>4>,>3>,>3>,>5>]> print>(>' the unique values from 2nd list is'>)> unique(list2)>

>

>

Sortir

the unique values from 1st list is 40 10 20 30 the unique values from 2nd list is 1 2 3 4 5>

Complexité temporelle : O(n), où n est la longueur d'une liste.
Espace auxiliaire : O(n), où n est la longueur d'une liste.

Obtenez des valeurs uniques à partir d'une liste en Python à l'aide de la fonction réduire ()

Utilisation de l'importation Python réduire() à partir de functools, parcourez tous les éléments et vérifiez si l'élément est une valeur en double ou unique. Vous trouverez ci-dessous la mise en œuvre de l’approche ci-dessus.

Python3




from> functools>import> reduce> def> unique(list1):> ># Print directly by using * symbol> >ans>=> reduce>(>lambda> re, x: re>+>[x]>if> x>not> in> re>else> re, list1, [])> >print>(ans)> # driver code> list1>=> [>10>,>20>,>10>,>30>,>40>,>40>]> print>(>'the unique values from 1st list is'>)> unique(list1)> list2>=> [>1>,>2>,>1>,>1>,>3>,>4>,>3>,>3>,>5>]> print>(>' the unique values from 2nd list is'>)> unique(list2)>

>

>

Sortir

the unique values from 1st list is [10, 20, 30, 40] the unique values from 2nd list is [1, 2, 3, 4, 5]>

Obtenez des valeurs uniques à partir d'une liste en Python à l'aide de la méthode Operator.countOf()

La fonction « unique » initialise une « unique_list » vide, puis parcourt « list1 ». Pour chaque élément « x », il emploie « op.countOf() ' pour vérifier si 'x' est présent dans 'unique_list'. S'il n'est pas trouvé (le nombre est 0), « x » est ajouté à « unique_list ». Les valeurs uniques finales sont imprimées à l'aide d'un boucle . Le code du pilote démontre ce processus pour deux listes, « list1 » et « list2 », présentant l'extraction d'éléments distincts de chaque liste tout en conservant leur ordre d'origine.

Python3




date dactylographiée
import> operator as op> # function to get unique values> def> unique(list1):> ># initialize a null list> >unique_list>=> []> ># traverse for all elements> >for> x>in> list1:> ># check if exists in unique_list or not> >if> op.countOf(unique_list, x)>=>=> 0>:> >unique_list.append(x)> ># print list> >for> x>in> unique_list:> >print>(x)> # driver code> list1>=> [>10>,>20>,>10>,>30>,>40>,>40>]> print>(>'the unique values from 1st list is'>)> unique(list1)> list2>=> [>1>,>2>,>1>,>1>,>3>,>4>,>3>,>3>,>5>]> print>(>' the unique values from 2nd list is'>)> unique(list2)>

>

>

Sortir

the unique values from 1st list is 10 20 30 40 the unique values from 2nd list is 1 2 3 4 5>

Complexité temporelle : O(N)
Espace auxiliaire : O(N)

Obtenez des valeurs uniques à partir d'une liste en Python à l'aide du module pandas

La fonction « unique » utilise Pandas pour créer une série à partir de « list1 », puis utilise « drop_duplicates() » pour éliminer les doublons et obtenir une liste de valeurs uniques. Par la suite, il parcourt la liste unique et imprime chaque élément. Le code du pilote démontre le processus pour deux listes, « list1 » et « list2 », fournissant des valeurs distinctes pour chaque liste.

Python3




import> pandas as pd> # function to get unique values> def> unique(list1):> >unique_list>=> pd.Series(list1).drop_duplicates().tolist()> >for> x>in> unique_list:> >print>(x)> # driver code> list1>=> [>10>,>20>,>10>,>30>,>40>,>40>]> print>(>'the unique values from 1st list is'>)> unique(list1)> list2>=> [>1>,>2>,>1>,>1>,>3>,>4>,>3>,>3>,>5>]> print>(>' the unique values from 2nd list is'>)> unique(list2)> #This code is contributed by Vinay Pinjala.>

>

>

Sortir:

the unique values from 1st list is 10 20 30 40 the unique values from 2nd list is 1 2 3 4 5>

Complexité temporelle : O(N)
Espace auxiliaire : O(N)

Obtenez des valeurs uniques à partir d'une liste Utiliser numpy.unique

Utiliser l'importation de Python numpy , les éléments uniques du tableau sont également obtenus. Dans la première étape, convertissez la liste en x=numpy.array(liste) puis utilisez numpy.unique(x) fonction pour obtenir les valeurs uniques de la liste. numpy.unique() renvoie uniquement les valeurs uniques dans la liste.

Python3




# using numpy.unique> import> numpy as np> def> unique(list1):> >x>=> np.array(list1)> >print>(np.unique(x))> # driver code> list1>=> [>10>,>20>,>10>,>30>,>40>,>40>]> print>(>'the unique values from 1st list is'>)> unique(list1)> list2>=> [>1>,>2>,>1>,>1>,>3>,>4>,>3>,>3>,>5>]> print>(>' the unique values from 2nd list is'>)> unique(list2)>

>

>

Sortir:

the unique values from 1st list is [10 20 30 40] the unique values from 2nd list is [1 2 3 4 5]>

Complexité temporelle : O(nlogn) en raison de l'utilisation de l'algorithme de tri utilisé par la fonction numpy.unique().
Espace auxiliaire : O(n) car la fonction numpy.unique() crée une copie du tableau d'entrée puis le trie avant de renvoyer les éléments uniques.

Obtenez des valeurs uniques à partir d'une liste en Python à l'aide de collections.Counter()

Utiliser Python pour importer Counter() depuis collections imprimer toutes les clés des éléments du compteur ou on imprime directement en utilisant le * symbole. Vous trouverez ci-dessous la mise en œuvre de l’approche ci-dessus.

Python3




from> collections>import> Counter> # Function to get unique values> def> unique(list1):> ># Print directly by using * symbol> >print>(>*>Counter(list1))> # driver code> list1>=> [>10>,>20>,>10>,>30>,>40>,>40>]> print>(>'the unique values from 1st list is'>)> unique(list1)> list2>=> [>1>,>2>,>1>,>1>,>3>,>4>,>3>,>3>,>5>]> print>(>' the unique values from 2nd list is'>)> unique(list2)>

>

>

Sortir

the unique values from 1st list is 10 20 30 40 the unique values from 2nd list is 1 2 3 4 5>

Complexité temporelle : O(n) , où n est le nombre d'éléments dans la liste d'entrée.
Espace auxiliaire : O(n)

Obtenez des valeurs uniques à partir d'une liste à l'aide de dict.fromkeys()

En utilisant le à partir des clés() méthode de structure de données du dictionnaire, nous pouvons récupérer les éléments uniques. Tout d'abord, nous devons définir une liste composée d'éléments en double. Ensuite, nous devons utiliser une variable dans laquelle nous stockerons le résultat après avoir utilisé la méthode fromkeys(). Nous devons convertissez ce résultat en liste, car la méthode fromkeys() fait partie du dictionnaire, elle renvoie donc par défaut un dictionnaire avec toutes les clés uniques et None comme valeurs.

Python3




# defining a list which consists duplicate values> list1>=> [>10>,>20>,>10>,>30>,>40>,>40>]> list2>=> [>1>,>2>,>1>,>1>,>3>,>4>,>3>,>3>,>5>]> # storing the result of the fromkeys()> # operation and converting it into list> unique_list_1>=> list>(>dict>.fromkeys(list1))> unique_list_2>=> list>(>dict>.fromkeys(list2))> # Printing the final result> print>(unique_list_1,unique_list_2,sep>=>' '>)>

>

>

Ubuntu build essentiel
Sortir

[10, 20, 30, 40] [1, 2, 3, 4, 5]>

Complexité temporelle – O(n)
Complexité spatiale – O(n)