[pyar] Necesito una estructura para deduplicar diccionarios complejos

Tordek kedrot en gmail.com
Jue Abr 30 10:17:07 ART 2015


Si data es hasheable, queres algun tipo de set o dict donde puedas buscar
por el hash. algo como...

def dedup(data):
    try:
        for v in dedup_dict[hash(data)]:
            if v == data:
               return v
         dedup_dict[hash(data)].append(data)
    except:
        dedup_dict[hash(data)] = [data]

btw code + phone != fun
On 30 Apr 2015 10:08, "Angel Java Lopez" <ajlopez2000 en gmail.com> wrote:

> Jaja... perdon, yo tampoco entendi mucho, parece interesante el problema
>
> 2015-04-30 9:44 GMT-03:00 Matias Graña <matias.alejo en gmail.com>:
>
>> No sé si estoy entendiendo bien; para mí en un árbol los sub-árboles son
>> todos distintos. De todas maneras, cómo se calcula el == que vos estás
>> tomando? Podés solo mirar si los hijos coinciden?
>>
>> -- Matías Graña
>>
>> 2015-04-30 9:14 GMT-03:00 Facundo Batista <facundobatista en gmail.com>:
>>
>> Mi problema es: estoy construyendo un árbol gigante (en las pruebas,
>>> con un 1% de los datos, termino con 660 mil nodos), me di cuenta que
>>> al final, MUCHOS nodos tienen el mismo subtree abajo.
>>>
>>> Como tengo problemas de memoria, se me ocurrió deduplicarlos (esto es,
>>> en vez de tener dos diccionarios iguales, tener el mismo dos veces).
>>>
>>> El código que hace esto bien (pero de forma terriblemente lenta), es
>>> el siguiente:
>>>
>>>         # llego acá con "data" que es el dict a deduplicar
>>>         for prev in self._deduplic:
>>>             if prev == data:
>>>                 data = prev
>>>                 break
>>>         else:
>>>             self._deduplic.append(data)
>>>
>>> (mismo código: http://linkode.org/C3r3o25PETWAB3nL57LqI2 )
>>>
>>> ¿Cómo se les ocurre hacer esto mismo pero más rápido?
>>>
>>> ¡Gracias! Slds.
>>>
>>> --
>>> .    Facundo
>>>
>>> Blog: http://www.taniquetil.com.ar/plog/
>>> PyAr: http://www.python.org/ar/
>>> Twitter: @facundobatista
>>> _______________________________________________
>>> pyar mailing list pyar en python.org.ar
>>> http://listas.python.org.ar/listinfo/pyar
>>>
>>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>>
>>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>>> Argentina - http://www.usla.org.ar
>>>
>>
>>
>> _______________________________________________
>> pyar mailing list pyar en python.org.ar
>> http://listas.python.org.ar/listinfo/pyar
>>
>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>
>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>> Argentina - http://www.usla.org.ar
>>
>
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20150430/a720b26d/attachment.html>


More information about the pyar mailing list