logo

Python: formas de eliminar duplicados de la lista

Este artículo se centra en una de las operaciones para obtener una lista única a partir de una lista que contiene un posible duplicado. Eliminar duplicados de la operación de lista tiene una gran cantidad de aplicaciones y, por lo tanto, es bueno tener su conocimiento en Pitón.

leyes de equivalencia

Formas de eliminar duplicados de la lista:

A continuación se detallan los métodos que cubriremos en este artículo:



Eliminar duplicados de la lista usando el método set()

Esta es la forma más popular mediante la cual se eliminan los duplicados de la lista. método establecer () . Pero el principal y notable inconveniente de este enfoque es que en este método en particular se pierde el orden del elemento.

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))>

>

>

Producción

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

Complejidad del tiempo: En)
Complejidad espacial: En)

Eliminar duplicados de la lista mediante comprensión de listas

Este método funciona de manera similar al método anterior, pero esto es solo una breve descripción de un método más largo realizado con la ayuda de comprensión de listas. orden

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))>

>

>

Producción

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

Complejidad del tiempo: En)
Complejidad espacial: En)

Elimine los duplicados de la lista usando la comprensión de listas con enumerate()

El comprensión de la lista junto con función enumerar También puede lograr esta tarea. Básicamente busca elementos que ya ocurrieron y omite agregarlos. Conserva el orden de la lista.

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))>

>

>

Producción

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

Complejidad del tiempo: O(n^2)
Complejidad espacial: En)

Elimine los duplicados de la lista en Python usando collections.OrderedDict.fromkeys()

Este es el método más rápido para lograr una tarea en particular. Primero elimina los duplicados y devuelve un diccionario que debe convertirse en una lista. Esto también funciona bien en el caso de cuerdas.

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))>

>

>

Producción

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

Complejidad del tiempo: En)
Complejidad espacial: En)

Eliminar duplicados de la lista usando operadores in, no in

En esto, iteramos a través de la lista y mantenemos una lista correspondiente que contiene el elemento de la lista de entrada y antes de agregar el nuevo elemento a la lista correspondiente verificamos si el elemento ya existe o no en la lista correspondiente y de esta manera podemos eliminar el duplicado de la lista de entrada.

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))>

>

>

Producción

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

Complejidad del tiempo: O(n^2)
Complejidad espacial: En)

Eliminar duplicados de la lista usando comprensión de listas y método Array.index()

En este método, utilizamos la comprensión de listas para iterar sobre la lista y la indexación de matrices para obtener el elemento de una matriz. Agregamos los elementos a la matriz solo si el primer índice de un elemento en la matriz coincide con el índice actual del elemento o si lo ignora.

Pitón




# 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)>

>

>

Producción

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

Complejidad del tiempo: O(n^2)
Complejidad espacial: En)

Eliminar duplicados de la lista usando el o método contador()

En este método utilizamos el método contador() para hacer un diccionario a partir de una matriz determinada. Ahora recupere todas las claves usando llaves() método que proporciona solo valores únicos de la lista anterior.

Python3

convertir caracteres a cadenas java




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)>

>

>

Producción

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

Complejidad del tiempo: En)
Complejidad espacial: En)

Eliminar duplicados de la lista usando un método único y numpy

Este método se utiliza cuando la lista contiene elementos del mismo tipo y se utiliza para eliminar duplicados de la lista. Primero convierte la lista en una matriz numerosa y luego usa el método numeroso único() para eliminar todos los elementos duplicados de la lista.

Nota: instale el módulo numpy usando el comando pip install numpy duplicar

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))>

>

>

Producción

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

Complejidad del tiempo: En)
Complejidad espacial: En)

Usando el marco de datos de pandas

El pandas.DataFrame.drop_duplicates() El método también se puede utilizar para eliminar duplicados de una lista. El método devuelve un nuevo DataFrame con los duplicados eliminados y los datos del marco de datos original. marco permanece sin cambios.

Algoritmo:

¿Qué es la expresión regular de Java?

Crea un marco de datos de pandas con la lista. Utilice el método drop_duplicates() en el DataFram y luego convierta el DataFrame resultante en una lista.

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))>

>

>

Producción:

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

Complejidad del tiempo: La complejidad temporal del método drop_duplicates() es O(n log n), ya que ordena los valores antes de eliminar duplicados. La conversión de DataFrame a una lista lleva O(n) tiempo. Por lo tanto, la complejidad temporal general de este método es O (n log n).

Complejidad espacial: La complejidad espacial de este método es O(n) porque se crean un nuevo DataFrame y una lista, cada uno con n elementos.