Artículos
Python

Eliminar elementos duplicados de una lista con Python

07/Mar/2021

Ya hemos validado las tres formas en las que se pueden eliminar elementos de una lista, ahora vamos a ver cómo podemos eliminar elementos duplicados de una lista con Python.

En este caso volvemos a partir de una lista de elementos que inicializamos con números:

lista = [1,4,3,4,5,1,2,8,7,4,3,1,3]

Eliminar elementos duplicados con remove

Si hemos leído el artículo sobre las formas de eliminar elementos de una lista con Python (si no deberías de leerlo ahora) habrás podido comprobar que disponemos de un método .remove() que elimina el primer elemento que coincida con el elemento pasado por parámetro.

Su sintaxis sería:

lista.remove(elemento)

De esta forma si queremos eliminar el primero elemento que coincida con el número 1 escribiríamos lo siguiente:

lista.remove(1)

Pero esto solo nos elimina la primera ocurrencia, ¿qué deberemos de hacer para poder eliminar todas las ocurrencias menos una? Pues bien, lo que haremos primero, será conoce cuántas veces aparece el número. Para ello utilizamos el método .count() al cual pasamos como parámetro el número a buscar.

num_ocurrencias = lista.count(1)

Y ahora que sabemos cuántas veces aparece lo que haremos será el utilizar un bucle for para llamar tantas veces menos una al método .remove()

for x in range(1,num_ocurrencias):
    lista.remove(1)

Al salir del bucle habremos eliminado todos los números 1 que se encontrasen en la lista menos 1. Eliminando así los elementos duplicados.

Eliminar elementos duplicados con dict

Otra alternativa que tenemos para poder eliminar los elementos duplicados de la lista es utilizar el objeto dict que representa un diccionario en Python. Y podemos contar muchas características de los diccionarios en Python, pero con la que nos quedaremos es que los diccionarios en Python son indexados por una clave y no de forma numérica y esa clave es única.

Podemos crear un diccionario de la siguiente forma:

diccionario = {1: 'uno', 2:'dos', 3:'tres'};

En nuestro caso vamos a transformar la lista en un diccionario mediante el método .fromkeys() que lo que hace es coger los elementos de una lista y convertirlos en las claves de un diccionario.

dict.fromkeys(lista)

En esta conversión se eliminarán las claves duplicadas

Ahora lo que haremos será volver a convertir este diccionario en una lista mediante el método .list() y nuevamente tendremos la lista, en este caso habiéndo eliminado los elementos duplicados.

lista = list(dict.fromkeys(lista))
print (lista)

Con esto ya hemos visto las dos opciones que tenemos para eliminar elementos duplicados de una lista con Python. ¿Se te ocurre otra forma de hacerlo? Cuéntanoslo en los comentarios.

Código Fuente

Descárgate el código fuente de Eliminar elementos duplicados de una lista con Python
Y si te ha gustado nuestro código fuente puedes regalarnos una estrella Star
Suscribir
Notificar de
guest
0 Comentarios
Opiniones integradas
Ver todos los comentarios