Eliminar duplicados de una lista en python es un problema muy común y si buscas un poco veras que la solución mas eficiente es usar un set:

list(set(original_list))

Si es necesario que el resultado preserve el orden de la lista original se puede usar:

def del_duplicates(alist):
    seen = set()
    seen_add = seen.add
    return [x for x in alist if not (x in seen or seen_add(x))]

El único inconveniente de estas dos soluciones es necesario que todos los elementos de la lista sean hashables, con los tipos basicos no es ningún problema si es una lista de objectos ese necesario definir los metodos __eq__() y __hash__()


comments powered by Disqus