[Python-Dev] slightly inconsistent set/list pop behaviour

Jack diederich jackdied at gmail.com
Wed Apr 8 12:57:25 CEST 2009


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.

-Jack


More information about the Python-Dev mailing list