Python Eliminar duplicados de una lista

El trabajo es sencillo. Necesitamos tomar una lista, con elementos duplicados en ella y generar otra lista que solo contenga el elemento sin los duplicados en ellos.

Ejemplos:  

Input : [2, 4, 10, 20, 5, 2, 20, 4]
Output : [2, 4, 10, 20, 5]

Input : [28, 42, 28, 16, 90, 42, 42, 28]
Output : [28, 42, 16, 90]

Podemos usar not in on list para descubrir los elementos duplicados. Creamos una lista de resultados e insertamos solo aquellos que aún no están. 

Python3

# Python code to remove duplicate elements
def Remove(duplicate):
    final_list = []
    for num in duplicate:
        if num not in final_list:
            final_list.append(num)
    return final_list
     
# Driver Code
duplicate = [2, 4, 10, 20, 5, 2, 20, 4]
print(Remove(duplicate))

Producción:  

[2, 4, 10, 20, 5]

Fácil implementación:

Una forma rápida de hacer lo anterior utilizando la estructura de datos establecida de la biblioteca estándar de Python (la implementación de Python 3.x se proporciona a continuación)  

Python3

duplicate = [2, 4, 10, 20, 5, 2, 20, 4]
print(list(set(duplicate)))

Producción:  

[2, 4, 10, 20, 5] 

Método 2: usar diccionario/hashmap

Acercarse:

  1. Cree un diccionario y, de forma predeterminada, mantenga el recuento de cada elemento en cero, utilizando el diccionario predeterminado.
  2. Si el recuento de elementos es CERO, incremente el valor en el diccionario y continúe.
  3. Si el recuento de elementos es mayor que cero, elimine el elemento de la lista dada utilizando el método remove().

Puede leer más sobre el dictado predeterminado aquí.

Python3

from collections import defaultdict
 
def default_val():
  return 0
 
# dict : maintain count of each element. with default value of key is 0
mydict = defaultdict(default_val)
 
# LIST
l = [1, 2, 3, 2, 6, 3, 5, 3, 7, 8]
 
for i in l:
  # if the element already present in the array, remove the element.
  if mydict[i] == 1:
    l.remove(i)
  #If the elements appears first time keep it count as 1
  else:
    mydict[i] =  1
 
# printing the final array
print(l)
Producción

[1, 2, 6, 5, 3, 7, 8]

Complejidad

Complejidad del tiempo:  

Complejidad de tiempo de caso promedio: O(n); n es el tamaño de la array

Complejidad temporal en el peor de los casos: O( n^2 ); n es el tamaño de la array

Complejidad espacial: O(n); n es el tamaño de la array

Publicación traducida automáticamente

Artículo escrito por Chinmoy Lenka y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *