[Python-es] Duplicados en una lista

Carlos Herrera Polo carlos.herrerapolo en gmail.com
Mar Oct 19 16:19:00 CEST 2010


Excelente !!!
Gracias a todos por sus aportes, es dificil de creer que exista tanta
flexibilidad en un lenguaje de programación para hacer lo mismo de
diferentes maneras.

Saludos a todos desde Peru

El 19 de octubre de 2010 09:03, lasizoillo <lasizoillo en gmail.com> escribió:

> 2010/10/19 Arnau Sanchez <pyarnau en gmail.com>:
> > On Tue, 19 Oct 2010 13:50:37 +0200 tny wrote:
> >
> >> uno_de_cada_en_orden_original = [a[i] for i in range(len(a)) if a[i] not
> >> in a[:i]]
> >
> > Uf, eso tiene pinta de O(n^2) en tiempo cuando unique puede (debería) ser
> O(n).
>
> Un unique sobre una colección ordenada debería ser O(n) porque basta
> con comparar con el anterior. Si la lista no esta ordenada habría que
> encontrar si ya hemos leido ese dato antes o no. Si puede hacer esa
> búsqueda con O(1), seguiría siendo O(n), pero lo más probable es que
> acabara siendo O(n log n). En su caso tiene pinta de O(n^2) u O(n^2 /
> 2) si nos ponemos finos, cosa que es mejorable, pero tiene la ventaja
> de no necesitar otra estructura adicional para hacer ese loopback. Es
> más lento, pero requiere menos memoria.
>
> Resumiendo, me parece ideal para los casos en los que se quiera quitar
> duplicados de una lista manteniendo el orden (desordenado) original de
> esta y los requisitos de espacio/memoria sean necesarios. Para el
> resto de los casos hay soluciones mejores ;-)
>
> Un saludo:
>
> Javi
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20101019/0980eef8/attachment.html>


Más información sobre la lista de distribución Python-es