Curiosidad sobre __hash__()

Pepe Aracil pepe en diselpro.com
Jue Feb 5 09:28:57 CET 2009


Hola Chema.

Imaginemos que "sota" colisiona con "caballo"

entonces:
d={}
d["sota"] = 10
d["caballo"] = 11

¿No se obtendria este resultado?

 >>>d["sota"]
11
 >>>d["caballo"]
11


Saludos.






Chema Cortes escribió:
> El Thursday 05 February 2009 01:10:01 Pepe Aracil escribió:
>
>   
>> Creo que con un diccionario de 65536 entradas y un hash de 32 bits,
>> tengo 1/65536 posibilidades de tener una colisión.
>>
>> Son pocas posibilidades, pero yo no utilizaría un hash de 32 bits para
>> "cosas" críticas.
>>     
>
> No entiendo porqué ha de ser un problema. Los hashes se usan para ordenar los 
> elementos con el fin de hacer búsquedas mucho más rápidas. (En realidad, 
> determinan el orden de los items de un diccionario, por éso parece que estén 
> desordenados). Que exista una "colisión" de dos índices en un diccionario 
> sólo implica que se tarde un poco más en acceder al item solicitado; pero, 
> aun con todo, puede que sea menos tiempo que si se hubiera elegido longitudes 
> mayores de hash.
>   
> ------------------------------------------------------------------------
>
> _______________________________________________
> Lista de correo Python-es 
> http://listas.aditel.org/listinfo/python-es
> FAQ: http://listas.aditel.org/faqpyes

_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes





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