<br><br><div><span class="gmail_quote">On 9/9/07, <b class="gmail_sendername">Larry Hastings</b> &lt;<a href="mailto:larry@hastings.org">larry@hastings.org</a>&gt; wrote:</span>


  

<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div bgcolor="#ffffff" text="#000000">
One goal of Jenkin&#39;s hashes is uniform distribution, so these functions
presumably lack the serendipitous &quot;similar inputs hash to similar
values&quot; behavior of Python&#39;s current hash function.&nbsp; But why is that a
feature?&nbsp; (Not that I doubt Tim Peters!)</div></blockquote><div><br>Because (relatively) small dicts with (broadly speaking) similar keys are quite common in Python. Module and class and instance __dict__s, for instance ;) As Tim mentioned, the dict implementation only looks at part of the actual hash value (depending on the size of the dict) and having hash values close but not the same greatly decreases the chance of collisions in (relatively) small dicts. It&#39;s less of a problem for massive dicts with (almost) completely arbitrary keys, but it doesn&#39;t exactly hurt there, either.
<br></div></div><br>-- <br>Thomas Wouters &lt;<a href="mailto:thomas@python.org">thomas@python.org</a>&gt;<br><br>Hi! I&#39;m a .signature virus! copy me into your .signature file to help me spread!