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 la set() 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.