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
- Cómo Ordenar un Diccionario en Python
- Cómo Invertir una Cadena en Python
- Tutoriales How-To en Python
- Curso de Python desde Cero
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.