Python elimina los duplicados de una lista

Una lista es un contenedor que contiene diferentes objetos de Python, 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 este tutorial, aprenderá:

  • Eliminar duplicados de la lista usando Establecer
  • Elimine los duplicados de una lista mediante la lista temporal.
  • Eliminar duplicados de la lista usando Dict
  • Eliminar duplicados de una lista usando for-loop
  • Eliminar duplicados de la lista usando la comprensión de la lista
  • Elimine los duplicados de la lista usando el método Numpy unique ().
  • Eliminar duplicados de la lista usando métodos Pandas
  • Eliminar duplicados usando enumerate () y comprensión de listas

Eliminar duplicados de la lista usando Establecer

Para eliminar los duplicados de una lista, puede utilizar el conjunto de funciones incorporado (). 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 proporciona a la función incorporada set (). Posteriormente, la lista final se muestra utilizando la función incorporada list (), como se muestra en el ejemplo siguiente.

El resultado que obtenemos son elementos distintos donde se eliminan todos los elementos duplicados.

my_list = [1,1,2,3,2,2,4,5,6,2,1]my_final_list = set(my_list)print(list(my_final_list))

Producción:

[1, 2, 3, 4, 5, 6]

Eliminar duplicados de una lista usando la lista temporal

Para eliminar duplicados de una lista determinada, puede utilizar una lista temporal vacía. Primero, tendrá que recorrer la lista que tiene duplicados y agregar los elementos únicos a la lista temporal. Posteriormente, la lista temporal se asigna a la lista principal.

Aquí hay un ejemplo de trabajo usando 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_listprint("List After removing duplicates ", my_list)

Producción:

List Before [1, 2, 3, 1, 2, 4, 5, 4, 6, 2]List After removing duplicates [1, 2, 3, 4, 5, 6]

Eliminar duplicados de la lista usando 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 el método fromkeys () disponible en OrderedDict para obtener los elementos únicos de la lista.

Para hacer uso del método OrderedDict.fromkey (), debe importar OrderedDict de las colecciones, como se muestra a continuación:

from collections import OrderedDict

Aquí hay un ejemplo para eliminar duplicados usando el método OrderedDict.fromkeys ().

from collections import OrderedDictmy_list = ['a','x','a','y','a','b','b','c']my_final_list = OrderedDict.fromkeys(my_list)print(list(my_final_list))

Producción:

['a', 'x', 'y', 'b', 'c']

Desde Python 3.5+ en adelante, podemos hacer uso del dict.fromkeys () regular para obtener los distintos elementos de la lista. Los métodos dict.fromkeys () 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:

my_list = ['a','x','a','y','a','b','b','c']my_final_list = dict.fromkeys(my_list)print(list(my_final_list))

Producción:

['a', 'x', 'y', 'b', 'c']

Eliminar duplicados de una lista usando for-loop

Usando for-loop, recorreremos la lista de elementos para eliminar duplicados.

Primero inicialice la matriz para que esté vacía, 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 append () método.

Entonces, siempre que se encuentre el elemento duplicado, ya estará presente en la matriz myFinallist y no se insertará. Veamos ahora lo mismo en el siguiente 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))

Producción:

[1, 2, 3, 4, 5, 6]

Eliminar duplicados de la lista usando la comprensión de la lista

Las listas por comprensión son funciones de Python 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 dada.

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)

Producción:

[1, 2, 3, 4, 5, 6]

Elimine los duplicados de la lista usando el método Numpy unique ().

El método unique () del módulo Numpy puede ayudarnos a eliminar duplicados de la lista dada.

Para trabajar con el primer módulo numpy de importación de Numpy, debe seguir estos pasos:

Paso 1 ) Importar módulo Numpy

import numpy as np

Paso 2) Use su lista con duplicados dentro del método único como se muestra a continuación. La salida se convierte de nuevo a un formato de lista utilizando el método tolist ().

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 npmy_list = [1,2,2,3,1,4,5,1,2,6]myFinalList = np.unique(my_list).tolist()print(myFinalList)

Producción:

[1, 2, 3, 4, 5, 6]

Eliminar duplicados de la lista usando métodos Pandas

El módulo Pandas tiene un método único () 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) Use su lista con duplicados dentro del método unique () 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 pdmy_list = [1,2,2,3,1,4,5,1,2,6]myFinalList = pd.unique(my_list).tolist()print(myFinalList)

Producción:

[1, 2, 3, 4, 5, 6]

Eliminar duplicados usando enumerate () y comprensión de listas

Aquí la combinación de comprensión de listas y enumerar 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. W

Cada elemento se comprueba si existe en la lista y, si existe, se elimina de la lista.

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

Producción:

[1, 2, 3, 4, 5, 6]

Resumen

  • Para eliminar los duplicados de una lista, puede utilizar el conjunto de funciones incorporado (). La especialidad del método set () es que devuelve elementos distintos.
  • Puede eliminar duplicados de la lista dada importando OrderedDict de colecciones. Está disponible desde python2.7 en adelante. OrderedDictdict se encarga de devolverle los distintos elementos en un orden en el que la clave está presente.
  • Puede hacer uso de un bucle for que recorreremos la lista de elementos para eliminar los duplicados.
  • El método unique () del módulo Numpy puede ayudarnos a eliminar duplicados de la lista dada.
  • El módulo Pandas tiene un método único () que nos dará los elementos únicos de la lista dada.
  • La combinación de comprensión de lista y enumeración se utiliza para eliminar los elementos duplicados de la lista. Enumerate devuelve un objeto con un contador para cada elemento de la lista.

Articulos interesantes...