dictionary interface

Robert Kern robert.kern at gmail.com
Tue Oct 4 20:41:15 EDT 2005


Tom Anderson wrote:
> On Tue, 4 Oct 2005, Robert Kern wrote:
> 
>>Antoon Pardon wrote:
>>
>>>  class Tree:
>>>
>>>    def __lt__(self, term):
>>>      return set(self.iteritems()) < set(term.iteritems())
>>>
>>>    def __eq__(self, term):
>>>      return set(self.iteritems()) == set(term.iteritems())
>>>
>>>Would this be a correct definition of the desired behaviour?
>>
>>No.
>>
>>In [1]: {1:2} < {3:4}
>>Out[1]: True
>>
>>In [2]: set({1:2}.iteritems()) < set({3:4}.iteritems())
>>Out[2]: False
>>
>>>Anyone a reference?
>>
>>The function dict_compare in dictobject.c .
> 
> Well there's a really helpful answer. 

Well, *I* thought it was. Maybe not "really" helpful, but certainly a
healthy start.

> I'm intrigued, Robert - since you 
> know the real answer to this question, why did you choose to tell the 
> Antoon that he was wrong, not tell him in what way he was wrong, certainly 
> not tell him how to be right, but just tell him to read the source, rather 
> than simply telling him what you knew?

Because I *didn't* know. I *still* don't know. I just know that the
implementation of __lt__ was wrong as I demonstrated by applying the
given algorithm to real dictionaries. I *do* know where to find that
information: the source. So I told him absolutely everything that I knew
on the subject. I couldn't tell him anything more except by trudging
through the details of the source myself, but I'm not particularly
interested in learning those details myself, so I didn't bother.

What do you want? Personalized Python tutorials delivered by candygram?
A detailed comparison of the various partial ordering schemes that could
have been used? My first born son?

> Still, at least you told him which 
> file to look in.

Yes, I figured it was the polite, helpful thing to do. Apparently, I
shouldn't have bothered.

> And if he knows python but not C, or gets lost in the 
> byzantine workings of the interpreter, well, that's his own fault, i 
> guess.

It's certainly not mine.

-- 
Robert Kern
rkern at ucsd.edu

"In the fields of hell where the grass grows high
 Are the graves of dreams allowed to die."
  -- Richard Harter




More information about the Python-list mailing list