[pyar] Necesito una estructura para deduplicar diccionarios complejos
Daniel Moisset
dmoisset en machinalis.com
Jue Abr 30 11:14:15 ART 2015
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.
O sea, tu self._deduplic podría ser un diccionario que mapea hashes a
diccionarios. y haces algo como
# llego acá con "data" que es el dict a deduplicar
data = self._deduplic.setdefault(dhash(data), data)
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
computas mas de una vez por diccionario
Saludos,
D.
2015-04-30 11:06 GMT-03:00 Facundo Batista <facundobatista en gmail.com>:
> 2015-04-30 10:31 GMT-03:00 Daniel Moisset <dmoisset en machinalis.com>:
>
> > El diccionario se construye afuera? Es un poco mas facil construirlo
> > deduplicado que deduplicarlo luego
>
> El diccionario lo armo yo (no entendí lo de "afuera"). La construcción
> del árbol es un quilombito importante (es un trie con nodos genéricos
> para ser tolerante a errores en el cálculo de prefijos, lo voy a usar
> para autocompletar).
>
> El código está acá:
> http://bazaar.launchpad.net/~facundo/ftrie/trunk/view/head:/src/ftrie.py
>
>
> > El contenido del diccionario es inmutable? Si no lo es, que puede
> cambiar
> > (claves, contenido)
>
> El contenido es inmutable. Pero lo "voy armando"... o sea, no puede
> nacer inmutable, pero lo puedo "congelar" al final.
>
> 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
>
--
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/a94c2be5/attachment.html>
More information about the pyar
mailing list