En este artículo, exploraremos varias técnicas y estrategias para extraer eficientemente distintos elementos de una lista determinada. Al profundizar en métodos que van desde bucles tradicionales hasta enfoques Pythonic modernos con Pitón.
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.>
Obtener valores únicos de una lista
A continuación se detallan los temas que cubriremos en este artículo:
- recorrido de la lista
- Usando Colocar método
- Usando función reducir ()
- Usando Operador.countOf() método
- Usando módulo pandas
- Usando numpy.unique
- Usando colecciones.Contador()
- Usando dict.fromkeys()
Obtener valores únicos de una lista por recorrido de la lista
Al usar el recorrido, podemos recorrer cada elemento de la lista y verificar si el elemento ya está en la lista_única, si no está allí, luego podemos agregarlo a la lista_única. Esto se hace usando uno en bucle y otra declaración if que verifica si el valor está en la lista única o no, que es equivalente a otra para un bucle.
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)> |
>
>Producción
the unique values from 1st list is 10 20 30 40 the unique values from 2nd list is 1 2 3 4 5>
Complejidad del tiempo: O(n*n)
Espacio Auxiliar: En)
Obtener valores únicos de una lista Usando el método establecido
Usando colocar() propiedad de Python, podemos verificar fácilmente los valores únicos. Inserta los valores de la lista en un conjunto. Set solo almacena un valor una vez incluso si se inserta más de una vez. Después de insertar todos los valores en el conjunto mediante list_set=set(list1), convierta este conjunto en una lista para imprimirlo.
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)> |
>
>Producción
the unique values from 1st list is 40 10 20 30 the unique values from 2nd list is 1 2 3 4 5>
Complejidad del tiempo: O(n), donde n es la longitud de una lista.
Espacio Auxiliar: O(n), donde n es la longitud de una lista.
Obtenga valores únicos de una lista en Python usando la función reducir()
Usando la importación de Python reducir() desde functools e itera sobre todos los elementos y comprueba si el elemento es un valor duplicado o único. A continuación se muestra la implementación del enfoque anterior.
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)> |
>
>Producción
the unique values from 1st list is [10, 20, 30, 40] the unique values from 2nd list is [1, 2, 3, 4, 5]>
Obtenga valores únicos de una lista en Python usando el método Operador.countOf()
La función 'única' inicializa una 'lista_única' vacía y luego recorre en iteración 'lista1'. Para cada elemento 'x', emplea ' op.countOf() 'para comprobar si 'x' está presente en 'unique_list'. Si no se encuentra (el recuento es 0), se añade 'x' a 'unique_list'. Los valores únicos finales se imprimen utilizando un bucle . El código del controlador demuestra este proceso para dos listas, 'lista1' y 'lista2', mostrando la extracción de elementos distintos de cada lista manteniendo su orden original.
Python3
java reemplazar todo
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)> |
>
>Producción
the unique values from 1st list is 10 20 30 40 the unique values from 2nd list is 1 2 3 4 5>
Complejidad del tiempo:O(N)
Espacio auxiliar: O(N)
Obtenga valores únicos de una lista en Python usando el módulo pandas
La función 'única' utiliza pandas para crear una Serie a partir de 'lista1', luego emplea 'drop_duplicates()' para eliminar duplicados y obtener una lista de valores únicos. Posteriormente, recorre la lista única e imprime cada elemento. El código del controlador demuestra el proceso para dos listas, 'lista1' y 'lista2', proporcionando valores distintos para cada lista.
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.> |
>
>
Producción:
the unique values from 1st list is 10 20 30 40 the unique values from 2nd list is 1 2 3 4 5>
Complejidad del tiempo:O(N)
Espacio auxiliar: O(N)
Obtener valores únicos de una lista Usando numpy.unique
Usando la importación de Python engordado , también se obtienen los elementos únicos del array. En el primer paso, convierta la lista a x=numpy.array(lista) y luego usar numpy.único(x) función para obtener los valores únicos de la lista. numpy.único() devuelve sólo los valores únicos de la lista.
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)> |
>
>
Producción:
the unique values from 1st list is [10 20 30 40] the unique values from 2nd list is [1 2 3 4 5]>
Complejidad del tiempo: O(nlogn) debido al uso del algoritmo de clasificación utilizado por la función numpy.unique().
Espacio auxiliar: O(n) porque la función numpy.unique() crea una copia de la matriz de entrada y luego la ordena antes de devolver los elementos únicos.
Obtenga valores únicos de una lista en Python usando collections.Counter()
Usando Python para importar Counter() desde colecciones imprimimos todas las claves de los elementos del Contador o imprimimos directamente usando el * símbolo. A continuación se muestra la implementación del enfoque anterior.
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)> |
carácter a int java
>
>Producción
the unique values from 1st list is 10 20 30 40 the unique values from 2nd list is 1 2 3 4 5>
Complejidad del tiempo: O(n) , donde n es el número de elementos en la lista de entrada.
Espacio auxiliar: O(n)
Obtenga valores únicos de una lista usando dict.fromkeys()
Utilizando el de claves() método de estructura de datos del diccionario podemos recuperar los elementos únicos. Primero necesitamos definir una lista que consta de elementos duplicados. Luego necesitamos usar una variable en la que almacenaremos el resultado después de usar el método fromkeys(). Necesitamos convierta ese resultado en una lista, ya que el método fromkeys() es parte del diccionario, por lo que de forma predeterminada devuelve un diccionario con todas las claves únicas y Ninguno como sus valores.
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>=>'
'>)> |
>
>Producción
[10, 20, 30, 40] [1, 2, 3, 4, 5]>
Complejidad del tiempo: O (n)
Complejidad espacial - O (n)