In questo articolo esploreremo varie tecniche e strategie per estrarre in modo efficiente elementi distinti da un determinato elenco. Approfondendo metodi che vanno dai loop tradizionali ai moderni approcci Pythonic con Pitone.
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.>
Ottieni valori univoci da un elenco
Di seguito sono riportati gli argomenti che tratteremo in questo articolo:
- Traversata del elenco
- Utilizzando Impostato metodo
- Utilizzando funzione ridurre()
- Utilizzando Operatore.countOf() metodo
- Utilizzando modulo panda
- Utilizzando numpy.unique
- Utilizzando collezioni.Counter()
- Utilizzando dict.fromkeys()
Ottieni valori univoci da un elenco mediante attraversamento della lista
Usando l'attraversamento, possiamo attraversare ogni elemento nell'elenco e verificare se l'elemento è già in unique_list, se non è lì, quindi possiamo aggiungerlo a unique_list. Questo viene fatto usando uno per ciclo e un'altra istruzione if che controlla se il valore è nell'elenco univoco o meno che è equivalente a un altro ciclo for.
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)> |
casting del tipo e conversione del tipo in Java
>
>Produzione
the unique values from 1st list is 10 20 30 40 the unique values from 2nd list is 1 2 3 4 5>
Complessità temporale: O(n*n)
Spazio ausiliario: SU)
Ottieni valori univoci da un elenco Utilizzo del metodo Imposta
Utilizzando impostato() proprietà di Python, possiamo facilmente verificare i valori univoci. Inserisci i valori della lista in un set. Set memorizza un valore solo una volta, anche se viene inserito più di una volta. Dopo aver inserito tutti i valori nel set con list_set=set(list1), converti questo set in un elenco per stamparlo.
Python3
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)> |
>
>Produzione
the unique values from 1st list is 40 10 20 30 the unique values from 2nd list is 1 2 3 4 5>
Complessità temporale: O(n), dove n è la lunghezza di una lista.
Spazio ausiliario: O(n), dove n è la lunghezza di una lista.
Ottieni valori univoci da un elenco in Python utilizzando la funzione reduce()
Utilizzando l'importazione Python ridurre() da functools e scorre su tutti gli elementi e controlla se l'elemento è un valore duplicato o univoco. Di seguito è riportata l'implementazione dell'approccio di cui sopra.
Python3
come convertire una stringa in un int
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)> |
>
>Produzione
the unique values from 1st list is [10, 20, 30, 40] the unique values from 2nd list is [1, 2, 3, 4, 5]>
Ottieni valori univoci da un elenco in Python utilizzando il metodo Operator.countOf()
La funzione 'unique' inizializza una 'unique_list' vuota, quindi scorre 'list1'. Per ogni elemento 'x', utilizza ' op.countOf() ‘ per verificare se ‘x’ è presente in ‘unique_list’. Se non viene trovato (il conteggio è 0), 'x' viene aggiunto a 'unique_list'. I valori univoci finali vengono stampati utilizzando a ciclo continuo . Il codice del driver dimostra questo processo per due elenchi, 'list1' e 'list2', mostrando l'estrazione di elementi distinti da ciascun elenco mantenendo l'ordine originale.
Python3
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)> |
>
>Produzione
the unique values from 1st list is 10 20 30 40 the unique values from 2nd list is 1 2 3 4 5>
Complessità temporale:O(N)
Spazio ausiliario: O(N)
hrithik roshan età
Ottieni valori univoci da un elenco in Python utilizzando il modulo pandas
La funzione 'unico' utilizza Panda per creare una serie da 'list1', quindi utilizza 'drop_duplicates()' per eliminare i duplicati e ottenere un elenco di valori univoci. Successivamente, scorre l'elenco univoco e stampa ciascun elemento. Il codice del driver illustra il processo per due elenchi, 'list1' e 'list2', fornendo valori distinti per ciascun elenco.
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.> |
>
>
Produzione:
the unique values from 1st list is 10 20 30 40 the unique values from 2nd list is 1 2 3 4 5>
Complessità temporale:O(N)
Spazio ausiliario: O(N)
Ottieni valori univoci da un elenco Utilizzando numpy.unique
Utilizzando l'importazione di Python insensato , si ottengono anche gli elementi univoci dell'array. Nel primo passaggio converti l'elenco in x=numpy.array(elenco) e poi utilizzare numpy.unique(x) funzione per ottenere i valori univoci dall'elenco. numpy.unique() restituisce solo i valori univoci nell'elenco.
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)> |
>
>
Produzione:
the unique values from 1st list is [10 20 30 40] the unique values from 2nd list is [1 2 3 4 5]>
Complessità temporale: O(nlogn) a causa dell'uso dell'algoritmo di ordinamento utilizzato dalla funzione numpy.unique().
Spazio ausiliario: O(n) perché la funzione numpy.unique() crea una copia dell'array di input e quindi lo ordina prima di restituire gli elementi univoci.
Ottieni valori univoci da un elenco in Python utilizzandocollections.Counter()
Utilizzo di Python per importare Counter() da collezioni stampiamo tutte le chiavi degli elementi Counter oppure stampiamo direttamente utilizzando il file * simbolo. Di seguito è riportata l'implementazione dell'approccio di cui sopra.
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)> |
>
>Produzione
the unique values from 1st list is 10 20 30 40 the unique values from 2nd list is 1 2 3 4 5>
Complessità temporale: O(n) , dove n è il numero di elementi nell'elenco di input.
Spazio ausiliario: O(n)
Ottieni valori univoci da un elenco utilizzando dict.fromkeys()
Usando il dai tasti() metodo della struttura dei dati del dizionario possiamo recuperare gli elementi univoci. Innanzitutto dobbiamo definire un elenco composto da elementi duplicati. Quindi dobbiamo utilizzare una variabile in cui memorizzeremo il risultato dopo aver utilizzato il metodo fromkeys(). Dobbiamo converti quel risultato in un elenco, poiché il metodo fromkeys() fa parte del dizionario quindi per impostazione predefinita restituisce un dizionario con tutte le chiavi univoche e None come valori.
Python3
converti int in double java
# 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>=>'
'>)> |
>
>Produzione
[10, 20, 30, 40] [1, 2, 3, 4, 5]>
Complessità temporale – O(n)
Complessità spaziale – O(n)