sorting a dictionary
Harvey Thomas
hst at empolis.co.uk
Tue Feb 4 04:48:57 EST 2003
> Alex Martelli wrote:
>
> > dsavitsk wrote:
> >
> > [about getting the largest key -- the "sorting" in the subject
> > is a bit of involuntary misdirection by the OP...:-)]
> >
> >> def get_highest(d): # don't use the name 'dict'
> >> l = d.keys()
> >> l.sort()
> >> return l[-1]
> >
> > This is good, but it's O(N logN) -- if the dictionary is
> > huge, you'll be hurting. max(d) is faster, and follows
> > the good rule of not reimplementing something that Python
> > already has as a built-in.
>
> Heh -- sorry, I see the OP wanted the *key of the highest
> value*, NOT the highest key, which is what dsavitsk's
> solution, and max(d), would give. For the OP's problem,
> you can't get any faster than O(N logN).
>
>
> Alex
>
isn't
max([(v,k) for k,v in d.items()])[1]
which I think does the required job O(N)?
_____________________________________________________________________
This message has been checked for all known viruses by the MessageLabs Virus Scanning Service.
More information about the Python-list
mailing list