Cómo eliminar duplicados de una lista en Python
⚡ Resumen inteligente
Eliminar duplicados de un Python La creación de listas se puede realizar mediante varios métodos integrados, como set(), dict.fromkeys(), bucles, comprensiones de listas y métodos de biblioteca de NumPy y Pandas, cada uno de los cuales equilibra la preservación del orden con la velocidad.

Python eliminar duplicados de una lista
Una lista es un contenedor que contiene diferentes Python objetos, que pueden ser números enteros, palabras, valores, etc. Es el equivalente a una matriz en otros lenguajes de programación.
Así que aquí repasaremos diferentes maneras en las que podemos eliminar duplicados de una lista dada en Python.
Método 1) Eliminar duplicados de la lista usando Set
Para eliminar los duplicados de una lista, puede utilizar la función integrada set(). La particularidad del método set() es que devuelve elementos únicos.
Tenemos la lista: [1,1,2,3,2,2,4,5,6,2,1]. La lista contiene muchos elementos duplicados que debemos eliminar para obtener solo los elementos únicos. La lista se pasa a la función integrada set(). Later La lista final se muestra utilizando la función integrada list().
El resultado que obtenemos son elementos únicos, donde se eliminan todos los elementos duplicados.
Ejemplo
my_list = [1,1,2,3,2,2,4,5,6,2,1]
my_final_list = set(my_list)
print(list(my_final_list))
Salida:
[1, 2, 3, 4, 5, 6]
Método 2) Usar la lista temporal
Para eliminar duplicados de una lista, puedes usar una lista temporal vacía. Para ello, primero tendrás que recorrer la lista con duplicados y añadir los elementos únicos a la lista temporal. Later la lista temporal se asigna a la lista principal.
Ejemplo
Aquí tienes un ejemplo práctico que utiliza una lista temporal.
my_list = [1, 2, 3, 1, 2, 4, 5, 4 ,6, 2] print("List Before ", my_list) temp_list = [] for i in my_list: if i not in temp_list: temp_list.append(i) my_list = temp_list print("List After removing duplicates ", my_list)
Salida:
List Before [1, 2, 3, 1, 2, 4, 5, 4, 6, 2] List After removing duplicates [1, 2, 3, 4, 5, 6]
Método 3) Usar Dict
Podemos eliminar los duplicados de la lista importando OrderedDict de collections. Está disponible a partir de Python 2.7. OrderedDict se encarga de devolver los elementos únicos en el orden en que aparece la clave.
Vamos a usar una lista y el método fromkeys() disponible en OrderedDict para obtener los elementos únicos de la lista.
Para utilizar el método OrderedDict.fromkeys(), debe importar OrderedDict desde collections, como se muestra a continuación:
from collections import OrderedDict
Aquí tienes un ejemplo para eliminar duplicados usando el método OrderedDict.fromkeys().
Ejemplo
from collections import OrderedDict my_list = ['a','x','a','y','a','b','b','c'] my_final_list = OrderedDict.fromkeys(my_list) print(list(my_final_list))
Salida:
['a', 'x', 'y', 'b', 'c']
Desde Python A partir de la versión 3.5, podemos usar el método dict.fromkeys() para obtener los elementos únicos de la lista. Este método devuelve claves únicas y ayuda a eliminar los valores duplicados.
A continuación se muestra un ejemplo que ilustra el funcionamiento de dict.fromkeys() en una lista para obtener los elementos únicos:
Ejemplo
my_list = ['a','x','a','y','a','b','b','c'] my_final_list = dict.fromkeys(my_list) print(list(my_final_list))
Salida:
['a', 'x', 'y', 'b', 'c']
Método 4) Usando el bucle for
El uso de en bucle, recorreremos la lista de elementos para eliminar duplicados.
Primero, inicializa el array vacío, es decir, `myFinallist = []`. Dentro del bucle `for`, verifica si los elementos de la lista existen en el array `myFinallist`. Si no existen, agrégalos al array `myFinallist` usando el método `append()`.
Por lo tanto, cuando se encuentre un elemento duplicado, este ya estará presente en el array myFinallist y no se insertará. Veamos ahora lo mismo en el siguiente ejemplo:
Ejemplo
my_list = [1,2,2,3,1,4,5,1,2,6] myFinallist = [] for i in my_list: if i not in myFinallist: myFinallist.append(i) print(list(myFinallist))
Salida:
[1, 2, 3, 4, 5, 6]
Método 5) Usar la comprensión de listas
Las listas por comprensión son Python funciones que se utilizan para crear nuevas secuencias (como listas, diccionarios, etc.) utilizando secuencias que ya se han creado. Esto le ayuda a reducir los bucles más largos y hacer que su código sea más fácil de leer y mantener.
Hagamos uso de la comprensión de listas para eliminar duplicados de la lista proporcionada.
Ejemplo
my_list = [1,2,2,3,1,4,5,1,2,6] my_finallist = [] [my_finallist.append(n) for n in my_list if n not in my_finallist] print(my_finallist)
Salida:
[1, 2, 3, 4, 5, 6]
Método 6) Usando el método unique() de NumPy
El método unique() del módulo NumPy nos puede ayudar a eliminar duplicados de la lista dada.
Para trabajar con NumPy, primero importa el módulo numpy:
Paso 1) Importar el módulo NumPy
import numpy as np
Paso 2) Utiliza tu lista con elementos duplicados dentro del método unique(). El resultado se convierte de nuevo a una lista mediante el método tolist().
myFinalList = np.unique(my_list).tolist()
Paso 3) Finalmente, imprime la lista:
print(myFinalList)
El código final con salida es el siguiente:
import numpy as np my_list = [1,2,2,3,1,4,5,1,2,6] myFinalList = np.unique(my_list).tolist() print(myFinalList)
Salida:
[1, 2, 3, 4, 5, 6]
Método 7) Usar métodos Pandas
El módulo Pandas tiene un método único() que nos dará los elementos únicos de la lista proporcionada.
Para trabajar con el módulo Pandas:
Paso 1) Importar módulo Pandas
import pandas as pd
Paso 2) Utilice su lista con duplicados dentro del método unique():
myFinalList = pd.unique(my_list).tolist()
Paso 3) Imprime la lista:
print(myFinalList)
El código final con salida es el siguiente:
import pandas as pd my_list = [1,2,2,3,1,4,5,1,2,6] myFinalList = pd.unique(my_list).tolist() print(myFinalList)
Salida:
[1, 2, 3, 4, 5, 6]
Método 8) Usar enumerate() y comprensión de listas
Aquí utilizamos la combinación de comprensión de listas y enumerate() para eliminar los elementos duplicados. Enumerate devuelve un objeto con un contador para cada elemento de la lista. Por ejemplo, (0,1), (1,2), etc. Aquí, el primer valor es el índice y el segundo valor es el elemento de la lista.
Se comprueba si cada elemento existe en la lista y, en caso afirmativo, se elimina de la misma.
Ejemplo
my_list = [1,2,2,3,1,4,5,1,2,6] my_finallist = [i for j, i in enumerate(my_list) if i not in my_list[:j]] print(list(my_finallist))
Salida:
[1, 2, 3, 4, 5, 6]
