Planning a Python Course for Beginners

Marko Rauhamaa marko at pacujo.net
Thu Aug 10 16:03:59 EDT 2017


Peter Otten <__peter__ at web.de>:

> Steve D'Aprano wrote:
>> The C code says:
>> 
>>>/* bottom 3 or 4 bits are likely to be 0; rotate y by 4 to avoid
>>>excessive hash collisions for dicts and sets */
>> 
>> which I think agrees with my comment: using the id() itself would put
>> too many objects in the same bucket (i.e. too many collisions).
>
> There's a subtle diffence: you expected objects with nearby memory
> addresses to end up in the same "bucket" while actually all addresses
> (are likely to) have the same low bits, and creation time does not
> matter.

I see no point in CPython's rotation magic.


Marko



More information about the Python-list mailing list