[Python-Dev] slightly inconsistent set/list pop behaviour
Steve Holden
steve at holdenweb.com
Wed Apr 8 13:57:09 CEST 2009
Jack diederich wrote:
> On Wed, Apr 8, 2009 at 2:44 AM, Mark Dickinson <dickinsm at gmail.com> wrote:
>> On Wed, Apr 8, 2009 at 7:13 AM, John Barham <jbarham at gmail.com> wrote:
>>> If you play around a bit it becomes clear that what set.pop() returns
>>> is independent of the insertion order:
>> It might look like that, but I don't think this is
>> true in general (at least, with the current implementation):
>>
>>>>> foo = set([1, 65537])
>>>>> foo.pop()
>> 1
>>>>> foo = set([65537, 1])
>>>>> foo.pop()
>> 65537
>
> You wrote a program to find the two smallest ints that would have a
> hash collision in the CPython set implementation? I'm impressed. And
> by impressed I mean frightened.
>
Given the two numbers in question (1, 2**16+1) I suspect this is the
result of analysis rather than algorithm.
regards
Steve
--
Steve Holden +1 571 484 6266 +1 800 494 3119
Holden Web LLC http://www.holdenweb.com/
Watch PyCon on video now! http://pycon.blip.tv/
More information about the Python-Dev
mailing list