Trova il valore massimo nel dizionario Python
-
Usa il metodo
operator.itemgetter()
per ottenere la chiave con il valore massimo -
Usa il metodo
dict.items()
per Python 3.x per ottenere la chiave con il valore massimo nel dizionario - una soluzione generica ed efficiente in termini di memoria per ottenere chiavi con il massimo valore nel dizionario
-
Usa i metodi
max()
edict.get()
per ottenere la chiave con il valore massimo nel dizionario
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 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