Cómo Eliminar Duplicados de una Lista en Python

La forma más rápida de eliminar duplicados de una lista en Python es dict.fromkeys():

sin_duplicados = list(dict.fromkeys(numeros))

¿Cuándo necesitas esto?

Trabajar con listas que contienen elementos repetidos es muy común en Python: limpiar datos de usuarios, eliminar productos repetidos o unir resultados de varias fuentes. En esta guía aprenderás cómo eliminar duplicados de una lista en Python con varios métodos, conservando o ignorando el orden original.

Método 1: Eliminar duplicados con set()

La forma más rápida de eliminar duplicados es convertir la lista a un set y volver a una lista.

numeros = [1, 2, 2, 3, 3, 3, 4]
sin_duplicados = list(set(numeros))
print(sin_duplicados)

Ten en cuenta que un set no conserva el orden original de los elementos.

Método 2: Conservar el orden con dict.fromkeys() (recomendado)

Si el orden importa, usa dict.fromkeys(), que conserva la primera aparición de cada elemento.

numeros = [1, 2, 2, 3, 3, 3, 4]
sin_duplicados = list(dict.fromkeys(numeros))
print(sin_duplicados)
# [1, 2, 3, 4]

Método 3: Conservar el orden con un bucle for

También puedes construir el resultado manualmente con un bucle. Funciona con cualquier tipo de elemento, incluidos los strings.

nombres = ["ana", "luis", "ana", "carla"]
sin_duplicados = []
for nombre in nombres:
    if nombre not in sin_duplicados:
        sin_duplicados.append(nombre)
print(sin_duplicados)
# ['ana', 'luis', 'carla']

Método 4: Eliminar duplicados de una lista de strings

Las mismas técnicas funcionan para listas de texto, algo muy útil para limpiar datos de usuarios.

palabras = ["hola", "mundo", "hola", "python"]
sin_duplicados = list(dict.fromkeys(palabras))
print(sin_duplicados)
# ['hola', 'mundo', 'python']

Comparativa de métodos

Método Ventaja Cuándo usarlo
set() Más rápido Cuando el orden no importa
dict.fromkeys() Conserva el orden Recomendado en la mayoría de casos
Bucle for Funciona con cualquier elemento Educativo o casos especiales

Errores comunes y solución

Perder el orden con set()

Un set es una colección sin orden. Si necesitas el orden original, usa dict.fromkeys() en lugar de set().

Usar el método con una lista de diccionarios

Los diccionarios no son hashables, por lo que set() y dict.fromkeys() fallan con ellos. Agrupa por una clave, por ejemplo con un bucle que compare un campo específico.

Preguntas frecuentes

¿set() conserva el orden original?

No. Un set es una colección sin orden. Usa dict.fromkeys() si necesitas conservar el orden.

¿Puedo eliminar duplicados sin modificar la lista?

Sí. Todos los ejemplos anteriores crean una lista nueva. La lista original nunca se modifica.

¿Funciona con una lista de diccionarios?

No directamente, porque los diccionarios no son hashables. Necesitas un enfoque distinto, por ejemplo agrupar por una clave.

Contenido relacionado

Palabras clave relacionadas

cómo eliminar duplicados de una lista en python, eliminar duplicados python, deduplicar lista python, set python, dict.fromkeys python, valores únicos lista python, lista python

Guarda este tutorial y compártelo si te fue útil. Encuentra más guías prácticas en la sección how-to de Python.