Dual look-up on keys?

Micah Cowan micah at cowan.name
Thu Mar 6 00:03:47 EST 2008


castironpi at gmail.com writes:

> On Mar 5, 8:03 pm, castiro... at gmail.com wrote:
>> On Mar 5, 5:31 pm, Grant Edwards <gra... at visi.com> wrote:
>>
>> > On 2008-03-05, castiro... at gmail.com <castiro... at gmail.com> wrote:
>> > > Anyway, if (a,b) is a key in dictionary d, can it guarantee
>> > > that (b,a) is also in it, and maps to the same object?
>>
>> Er... -specialized- dictionary d.
>>
>> > To solve that problem, Python provides the immutable
>> > "frozenset" type:
>>
>> >   >>> s1 = frozenset((1,2))
>> >   >>> s2 = frozenset((2,1))
>> >   >>> s1 == s2
>> >   True
>> >   >>> d = {s1: "hi there"}
>> >   >>> s1 in d
>> >   True
>> >   >>> s2 in d
>> >   True
>>
>> Ah.  Perfect.  With this, I can just call frozenset on keys in
>> __setitem__ and __getitem__... (though at that, it may be easier
>> verbatim*.)
>
>> a= SomeList( [ 1,2,3 ] )
>> b= SomeList( [ 1,2,3 ] )
>> assert a is not b
>> d[a]= True
>> assert b not in d
>> #there's the hangup
>
> *plonk*
>
> key is an iterable, just like the constructors to <bleep bl bbl bleep>
> other collection.

Um... "*plonk*" is the (imaginary) sound made by dropping someone into
your plonkfile (killfile, scorefile, whatever): the action of setting
your newsreader to ignore someone you perceive to be a troll.

I have extreme doubts that you have actually done this to _yourself_.

-- 
Micah J. Cowan
Programmer, musician, typesetting enthusiast, gamer...
http://micah.cowan.name/



More information about the Python-list mailing list