views:

110

answers:

4

d = {'apple':9,'oranges':3,'grapes':22}

How do I return the largest key/value?

Edit: How do I make a list that has this sorted by largest to lowest value?

A: 
max(d.values())

Edited:

The above gives you the max value. To get the key/value pair with the max value, you could do this:

sorted(d.items(), key=lambda x:x[1], reverse=True)[0]
Daniel Roseman
How do I print the key, too?
TIMEX
@alex There could be more than one. `d = {'apple': 22, 'oranges': 22, 'grapes': 22}`. Would any suffice?
Michael Mrozek
+1  A: 

You want to use max(). To get the largest key use:

max(d.keys())

Or:

max(d)

To get the largest value use:

max(d.values())
Jason Webb
+7  A: 
>>> d = {'apple':9,'oranges':3,'grapes':22}
>>> v, k = max((v, k) for k, v in d.items())
>>> k
'grapes'
>>> v
22

Edit: To sort them:

>>> items = sorted(((v, k) for k, v in d.items()), reverse=True)
>>> items
[(22, 'grapes'), (9, 'apple'), (3, 'oranges')]
FogleBird
+1 - but I'd do `sorted(d.items(), key=operator.itemgetter(1), reverse=True)`
THC4k
A: 

"""How do I print the key, too? """

maxval = max(d.itervalues())
maxkeys = [k for k, v in d.iteritems() if v == maxval]
John Machin