Cómo eliminar duplicados de una lista en Python
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í veremos diferentes formas en las que podemos eliminar duplicados de una lista determinada en Python.
Método 1) Eliminar duplicados de la lista usando Set
Para eliminar los duplicados de una lista, puede utilizar la función incorporada set()
. La especialidad del método set() es que devuelve elementos distintos.
Tenemos una lista: [1,1,2,3,2,2,4,5,6,2,1]. La lista tiene muchos duplicados que debemos eliminar y recuperar solo los elementos distintos. La lista se entrega al set()
función incorporada. Later La lista final se muestra utilizando el list()
función incorporada, como se muestra en el siguiente ejemplo.
El resultado que obtenemos son elementos distintos 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 un determinado list
, puede hacer uso de una lista temporal vacía. Para eso primero, tendrá que recorrer la lista que tiene duplicados y agregar los elementos únicos a la lista temporal. Later la lista temporal se asigna a la lista principal.
Ejemplo
A continuación se muestra 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 duplicados de la lista dada importando OrderedDict
de colecciones. Está disponible desde python2.7 en adelante. OrderedDict se encarga de devolverle los distintos elementos en un orden en el que la clave está presente.
Hagamos uso de una lista y usemos fromkeys()
método disponible en OrderedDict para obtener los elementos únicos de la lista.
Para hacer uso de OrderedDict.fromkey()
método, debe importar OrderedDict desde las colecciones, como se muestra a continuación:
from collections import OrderedDict
Aquí hay un ejemplo para eliminar duplicados usando OrderedDict.fromkeys()
método.
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 3.5+ en adelante, podemos hacer uso del regular dict.fromkeys()
para obtener los distintos elementos de la lista. El dict.fromkeys()
Los métodos devuelven claves que son únicas y ayudan a deshacerse de los valores duplicados.
Un ejemplo que muestra el funcionamiento de dict.fromkeys()
en una lista para dar los elementos únicos es el siguiente:
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
Usando en bucle, recorreremos la lista de elementos para eliminar duplicados.
Primero inicialice la matriz para vaciarla, es decir myFinallist = []
.Dentro del bucle for, agregue verificar si los elementos de la lista existen en la matriz myFinallist
. Si los elementos no existen, agregue el elemento a la matriz myFinallist usando el append()
método.
Entonces, siempre que se encuentre el elemento duplicado, ya estará presente en la matriz myFinallist y no se insertará. Comprobemos 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) Usar el método Numpy Unique().
El método unique()
del módulo Numpy puede ayudarnos a eliminar duplicados de la lista proporcionada.
Para trabajar con el primer módulo numpy importado de Numpy, debe seguir estos pasos:
Paso 1) Importar módulo Numpy
import numpy as np
Paso 2) Utilice su lista con duplicados dentro del método único como se muestra a continuación. La salida se convierte nuevamente a un formato de lista usando tolist()
método.
myFinalList = np.unique(my_list).tolist()
Paso 3) Finalmente imprima la lista como se muestra a continuación:
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 unique()
método que nos dará los elementos únicos de la lista dada.
Para trabajar con el módulo Pandas, debe seguir estos pasos:
Paso 1) Importar módulo Pandas
import pandas as pd
Paso 2) Utilice su lista con duplicados dentro unique()
método como se muestra a continuación:
myFinalList = pd.unique(my_list).tolist()
Paso 3) Imprima la lista como se muestra a continuación:
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í la combinación de comprensión de listas y enumeración para eliminar los elementos duplicados. Enumerar 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. W.
Cada elemento se comprueba si existe en la lista y, si existe, se elimina de la lista.
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]
Resum
- Para eliminar los duplicados de una lista, puede utilizar la función incorporada
set()
. La especialidad de laset()
El método es que devuelve elementos distintos. - Puede eliminar duplicados de la lista proporcionada importando
OrderedDictfrom
colecciones. Está disponible desde python2.7 en adelante.OrderedDictdict
se encarga de devolverte los distintos elementos en un orden en el que la clave está presente. - Puede utilizar un bucle for que recorreremos la lista de elementos para eliminar duplicados.
- El método
unique()
del módulo Numpy puede ayudarnos a eliminar duplicados de la lista proporcionada. - El módulo Pandas tiene un
unique()
método que nos dará los elementos únicos de la lista dada. - La combinación de comprensión de listas y enumeración se utiliza para eliminar los elementos duplicados de la lista. Enumerar devuelve un objeto con un contador para cada elemento de la lista.