Should I use a dictionary?

kosh kosh at aesaeion.com
Tue Jun 26 09:12:26 CEST 2001


Aahz Maruch wrote:

> In article <Xns90CCC3D73603gustaflalgonetse at 194.213.69.148>,
> Gustaf Liljegren <gustafl at algonet.se> wrote:
>>
>>I have an object type for e-mail messages based on the rfc822
>>module. After picking out some messages from several sources, I want
>>to sort them in order of the date property of the message object (as
>>far as I understand, everything in this process needs to be kept in
>>memory). Anyway, the problem is that I need some hints about how to
>>sort the messages, as they are not sorted in way I get them.
>>
>>One idea I came up with was to put the date property of the message
>>object as a key in a dictionary, and let the rest of the message be
>>the value! But even if it would work, I think it's ugly. If someone
>>can convince me that it's not ugly, or give a better (i.e. faster)
>>solution, I'd be happy.
> 
> For this purpose, a list is probably better, with the values being a
> tuple of (<date>, <message>).  The problem is that dicts want the key to
> be unique, and dealing with key collisions in this case is almost
> certainly more trouble than it's worth.


This method should able be very fast if you convert the data to a straight 
int first. This would have the advantage of using the built in sort 
function to really run through this set of data. So you would convert Sept 
06 2001 or something to its numerical representation in unix which is the 
number of seconds after a certain time. There are functions already to do 
this so it should be easy.



More information about the Python-list mailing list