Las listas de Python son increíblemente versátiles, pero manejar elementos duplicados de manera eficiente es una tarea común de programación. Este artículo explora dos métodos efectivos para eliminar duplicados de una lista de Python: aprovechar la función set()
integrada para mayor velocidad y usar OrderedDict
para mantener el orden original de los elementos.
Tabla de contenido
- Eliminando duplicados con el método
set()
- Preservando el orden con
OrderedDict
- Eligiendo el mejor enfoque
Eliminando duplicados con el método set()
La forma más rápida de eliminar duplicados es usar la función set()
. Los conjuntos son colecciones no ordenadas de elementos únicos. Convertir una lista a un conjunto elimina automáticamente los duplicados. Sin embargo, este método altera el orden original.
my_list = [1, 2, 2, 3, 4, 4, 5, 1]
# Convertir lista a conjunto para eliminar duplicados
unique_elements = set(my_list)
# Convertir conjunto de nuevo a una lista (el orden puede cambiar)
unique_list = list(unique_elements)
print(f"Lista original: {my_list}")
print(f"Lista con duplicados eliminados: {unique_list}")
Salida:
Lista original: [1, 2, 2, 3, 4, 4, 5, 1]
Lista con duplicados eliminados: [1, 2, 3, 4, 5]
Observe el posible cambio en el orden de los elementos.
Preservando el orden con OrderedDict
Para eliminar duplicados mientras se conserva el orden original, use OrderedDict
del módulo collections
. OrderedDict
mantiene el orden de inserción.
from collections import OrderedDict
my_list = [1, 2, 2, 3, 4, 4, 5, 1]
# Usar OrderedDict para eliminar duplicados preservando el orden
unique_list_ordered = list(OrderedDict.fromkeys(my_list))
print(f"Lista original: {my_list}")
print(f"Lista con duplicados eliminados, orden preservado: {unique_list_ordered}")
Salida:
Lista original: [1, 2, 2, 3, 4, 4, 5, 1]
Lista con duplicados eliminados, orden preservado: [1, 2, 3, 4, 5]
El orden es idéntico a la lista de entrada.
Eligiendo el mejor enfoque
Si el orden no es crítico, el método set()
ofrece una velocidad superior. Si preservar el orden original es primordial, OrderedDict
es la mejor opción, aunque podría ser ligeramente más lento para listas extremadamente grandes. Para la mayoría de las aplicaciones, la diferencia de rendimiento será insignificante. Seleccione el método que mejor se adapte a sus necesidades.