2010-05-19 4 views
2

d = { 'pomme': 9, 'oranges': 3, grappés: 22}Comment puis-je compter la plus haute clé dans un dictionnaire python? (Très pythonique façon?) EDIT: faire une liste

Comment puis-je retourner la plus grande clé/valeur?

Éditer: Comment faire une liste qui a ce tri par la valeur la plus grande à la plus faible?

+5

Que voulez-vous dire par « la plus grande clé/valeur »? Voulez-vous la plus grande clé, la plus grande valeur, la paire clé/valeur avec la plus grande clé ou la paire clé/valeur avec la –

Répondre

0
max(d.values()) 

Modifié:

La vous donne supérieure à la valeur max. Pour obtenir la paire clé/valeur avec la valeur maximale, vous pouvez le faire:

sorted(d.items(), key=lambda x:x[1], reverse=True)[0] 
+0

Comment imprimer la clé? – TIMEX

+1

@alex Il pourrait y en avoir plus d'un. 'd = {'apple': 22, 'oranges': 22, 'raisins': 22}'. ? –

2

Vous voulez utiliser max(). Pour obtenir la plus grande utilisation clé:

max(d.keys()) 

Ou:

max(d) 

Pour obtenir la plus grande utilisation de la valeur:

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

Modifier: Pour les trier:

>>> items = sorted(((v, k) for k, v in d.items()), reverse=True) 
>>> items 
[(22, 'grapes'), (9, 'apple'), (3, 'oranges')] 
+0

+1 - mais je ferais 'trié (d.items(), key = operator.itemgetter (1), reverse = True)' –

0

"" "Comment imprimer la clé aussi? « » »

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