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