Peter Otten <__pete...@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 -- https://mail.python.org/mailman/listinfo/python-list