Python >> Tutoriel Python >  >> Python

Comment trouver la valeur maximale dans un Python Dict ?

Il existe trois variantes de problème pour trouver la valeur maximale dans un dictionnaire Python :

  1. Trouvez la valeur maximale et renvoyez cette valeur maximale
  2. Trouvez la valeur maximale et renvoyez un tuple (clé, valeur) de la clé et de la valeur maximale elle-même
  3. Trouvez la valeur maximale et renvoyez uniquement la clé attribué à la valeur maximale

Dans ce qui suit, vous apprendrez à les résoudre de la manière la plus Pythonique :

Trouver la valeur maximale et ne renvoyer que la valeur

  • Obtenir les valeurs du dictionnaire avec d.values()
  • Renvoyer le maximum en passant ceux-ci dans le max() fonction
# mg Omega 3 per 100g
d = {
    "Salmon" : 2260,
    "Hering" : 1729,
    "Sardines" : 1480,
    "Flaxseeds" : 53400,
    "Eggs" : 400
}

max_val = max(d.values())

print(max_val)

La sortie est :

53400

Trouver la valeur maximale et la paire de retour (clé, valeur)

  • Obtenir un itérable de paires (clé, valeur) avec dict.items()
  • Passez-le dans le max() fonction
  • Passez une fonction clé lambda dans max() renvoyant la deuxième valeur de tuple comme base de comparaison
# mg Omega 3 per 100g
d = {
    "Salmon" : 2260,
    "Hering" : 1729,
    "Sardines" : 1480,
    "Flaxseeds" : 53400,
    "Eggs" : 400
}

max_val = max(d.items(), key=lambda x: x[1])

print(max_val)

La sortie est :

('Flaxseeds', 53400)

Rechercher la valeur maximale et la clé de retour uniquement

  • Utilisez le max() fonction
  • Passez-lui le dictionnaire :par défaut, il trouve la clé maximale.
  • Définissez la fonction de touche facultative sur d.get qui utilise la valeur associée à la clé comme base de comparaison.
# mg Omega 3 per 100g
d = {
    "Salmon" : 2260,
    "Hering" : 1729,
    "Sardines" : 1480,
    "Flaxseeds" : 53400,
    "Eggs" : 400
}

max_val = max(d, key=d.get)

print(max_val)

La sortie est :

Flaxseeds

Explication

Vous pouvez récupérer l'élément maximal d'un dictionnaire en utilisant la fonction max. Pour rappel, un dictionnaire stocke des paires (clé, valeur). Dans notre exemple, les clés sont des chaînes avec les noms de cinq aliments différents tels que 'Eggs' . Le dictionnaire associe chaque nom d'aliment à une valeur numérique qui décrit la quantité d'acides gras oméga 3 sains pour 100 g.

Comment trouver l'aliment (clé) dans le dictionnaire contenant le maximum d'Oméga 3 (valeur) ? Pour ce faire, nous utilisons la fonction max intégrée de Python. Mais appeler max(omega3_table) conduit à un résultat étrange. La fonction max par défaut appliquée à un dictionnaire récupère la clé maximale. Dans l'exemple, ce serait la clé "Sardines" car elle vient en dernier dans l'alphabet.

Pour résoudre ce problème, nous spécifions le paramètre clé de la fonction max. Le paramètre clé attend une fonction qui attribue une valeur à chaque élément de la séquence. Cette valeur est ensuite utilisée pour déterminer la valeur maximale de la séquence. Dans notre exemple, nous utilisons la valeur du dictionnaire de la clé respective en utilisant le dict.get fonction. Nous attribuons la valeur omega3_table[x] à chaque élément de séquence x.

Conclusion

Mangez une cuillère à soupe de graines de lin par jour ! Ils font partie des aliments les plus sains de notre planète.