[pyar] Necesito una estructura para deduplicar diccionarios complejos

Daniel Moisset dmoisset en machinalis.com
Jue Abr 30 11:47:49 ART 2015


Me puse a jugar un poco, acá tenes un ejemplo de hashing de un dict donde
las keys y las hojas son strings. Creo que anda pero probalo bien antes de
usarlo :)

D.

2015-04-30 11:43 GMT-03:00 Daniel Moisset <dmoisset en machinalis.com>:

> 2015-04-30 11:19 GMT-03:00 Facundo Batista <facundobatista en gmail.com>:
>
>> 2015-04-30 11:14 GMT-03:00 Daniel Moisset <dmoisset en machinalis.com>:
>>
>> > Podes hacer content-based adressing (es lo que se hace en los repos
>> git).
>> > Usas un hash con mas bits, y supones que si el hash es igual, el
>> contenido
>> > es igual. Si tu hash de k bits es bueno, la probabilidad de colicion es
>> 2 **
>> > (-k), que puede ser tan chico como quieras.
>>
>> Sí, y no me joden esos falsos negativos. Pero volvemos al tema de
>> hashear el diccionario, que es lo complicado.
>>
>> Tendría que recorrerlo con las claves (ordenadas o no), e ir
>> acumulando hashes o alguna cosa así
>>
>
>
> Aca te puedo sugerir algo si me contas bien que tipos tienen los
> diccionarios. Si las claves y las hojas son strings, un md5 de una
> serializacion (qeu te garantice unicidad) debería andar
>
>
> > dhash es una funcion que hashee tu contenido de algun modo. Te recomiendo
>> > usar alguna subclase de dict donde puedas cachear el hash, asi no la
>>
>> La ventaja de tener cacheado el hash es que al armar un nuevo dict que
>> abajo tiene dicts con el hash cacheado, no voy "profundo" en esa
>> estructura.
>>
>
> Claro
>
>
>> Pero, un objeto entero es más pesado que un dict crudo, tengo que ver
>> como me pega eso en performance, también.
>>
>
> Si estas optimizando, siempre podes usar un dict crudo guardar el cache en
> una key d['__dhash_cache__'], suponiendo que conoces alguna clave que
> puedas distinguir. Es mas "sucio", pero bueno,  por performance.
>
> Saludos,
>    D.
>
>
> --
> Daniel F. Moisset - Technical Leader
> www.machinalis.com
> Skype: @dmoisset
>



-- 
Daniel F. Moisset - Technical Leader
www.machinalis.com
Skype: @dmoisset
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20150430/2c6878ea/attachment.html>


More information about the pyar mailing list