Trova il valore massimo nel dizionario Python

Syed Moiz Haider 30 gennaio 2023
  1. Usa il metodo operator.itemgetter() per ottenere la chiave con il valore massimo
  2. Usa il metodo dict.items() per Python 3.x per ottenere la chiave con il valore massimo nel dizionario
  3. una soluzione generica ed efficiente in termini di memoria per ottenere chiavi con il massimo valore nel dizionario
  4. Usa i metodi max() e dict.get() per ottenere la chiave con il valore massimo nel dizionario
Trova il valore massimo nel dizionario Python

Questo tutorial descrive come ottenere una chiave con il valore massimo in dizionario Python. Elenca anche alcuni codici di esempio per chiarire i concetti poiché il metodo è cambiato rispetto alle precedenti versioni di Python.

Usa il metodo operator.itemgetter() per ottenere la chiave con il valore massimo

Non è necessario creare un nuovo lista per scorrere la coppia (chiave, valore) del dizionario. Possiamo usare stats.iteritems() per questo scopo. Restituisce un iteratore sulla coppia (chiave, valore) del dizionario.

Puoi usare il metodo operator.itemgetter(x) per ottenere l’oggetto richiamabile che restituirà l’elemento x-esimo dall’oggetto. Qui, poiché l’oggetto è la coppia (chiave, valore), operator.itemgetter(1) si riferisce all’elemento all’indice di 1, cioè al valore.

Poiché vogliamo una chiave con un valore massimo, incapsuleremo i metodi nella funzione max.

Di seguito viene fornito un codice di esempio di base per questo metodo:

import operator

stats = {"key1": 20, "key2": 35, "key3": 44}
max_key = max(stats.iteritems(), key=operator.itemgetter(1))[0]
print(max_key)

Produzione:

key3

Nota: anche se è presente un’altra chiave con un valore 44, questo metodo restituirà uno dei due valori ugualmente massimi.

Inoltre, tieni presente che iteritems() può sollevare una RunTimeException durante l’aggiunta o la rimozione di elementi dal dizionario, e dict.iteritems viene rimosso in Python 3.

Usa il metodo dict.items() per Python 3.x per ottenere la chiave con il valore massimo nel dizionario

In Python 3.x, puoi usare il metodo dict.items() per iterare su coppie chiave-valore del dizionario. È lo stesso metodo di dict.iteritems() in Python 2.

Di seguito viene fornito un codice di esempio per questo metodo:

import operator

stats = {"key1": 20, "key2": 35, "key3": 44}
max_key = max(stats.items(), key=operator.itemgetter(1))[0]
print(max_key)

Produzione:

key3

una soluzione generica ed efficiente in termini di memoria per ottenere chiavi con il massimo valore nel dizionario

È interessante notare che esiste un’altra soluzione che funziona sia per Python 2 che per Python 3. La soluzione utilizza la funzione lambda per ottenere la chiave e il metodo max per garantire che la chiave ottenuta sia massima.

Il codice di base per questo approccio è fornito di seguito:

import operator

stats = {"key1": 20, "key2": 35, "key3": 44}
max_key = max(stats, key=lambda key: stats[key])
print(max_key)

Produzione:

key3

Usa i metodi max() e dict.get() per ottenere la chiave con il valore massimo nel dizionario

Un’altra soluzione a questo problema può essere semplicemente usare il metodo max() integrato. Viene fornito con le statistics per ottenere il valore massimo da, e per restituire la chiave con il valore massimo, viene utilizzato il metodo dict.get().

Di seguito viene fornito un codice di esempio:

import operator

stats = {"key1": 20, "key2": 35, "key3": 44}
max_key = max(stats, key=stats.get)
print(max_key)

Produzione:

key3
Syed Moiz Haider avatar Syed Moiz Haider avatar

Syed Moiz is an experienced and versatile technical content creator. He is a computer scientist by profession. Having a sound grip on technical areas of programming languages, he is actively contributing to solving programming problems and training fledglings.

LinkedIn

Articolo correlato - Python Dictionary