Curiosidad sobre __hash__()
Pepe Aracil
pepe en diselpro.com
Jue Feb 5 09:36:47 CET 2009
Opss!! ya lo entiendo.
Se ordena por hash+key
por eso el diccionario se guarda las keys
y yo que creía que era solo para implementar
el metodo keys() ;)
Saludos.
Pepe Aracil escribió:
> 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
_______________________________________________
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