Encontrar o Valor Máximo no Dicionário Python
-
Utilize o
operator.itemgetter()
Método para obter chave com valor máximo -
Utilize o
dict.items()
Método para Python 3.x para obter chave com valor máximo no dicionário - uma solução geral e eficiente de memória para obter chave com valor máximo no dicionário
-
Utilize
max()
edict.get()
Métodos para obter a chave com o valor máximo no dicionário
Este tutorial descreve como obter uma chave com valor máximo em dicionário Python. Também lista alguns exemplos de códigos para clarificar os conceitos, uma vez que o método mudou em relação a versões anteriores do Python.
Utilize o operator.itemgetter()
Método para obter chave com valor máximo
Não precisamos de criar uma nova lista para iterar sobre o par (chave, valor)
do dicionário. Podemos utilizar stats.iteritems()
para este fim. Retorna um iterador sobre o par (chave, valor)
do dicionário.
Pode utilizar o método operator.itemgetter(x)
para obter o objecto chamável que irá retornar o elemento x-th
do objecto. Aqui porque o objecto é o (chave, valor)
par, operator.itemgetter(1)
refere-se ao elemento no índice de 1
, ou seja, o valor
.
Como queremos uma chave com um valor máximo, vamos encapsular os métodos na função max
.
Um código de exemplo básico para este método é dado abaixo:
import operator
stats = {"key1": 20, "key2": 35, "key3": 44}
max_key = max(stats.iteritems(), key=operator.itemgetter(1))[0]
print(max_key)
Resultado:
key3
Nota: Mesmo que haja outra chave com um valor 44, este método irá devolver um dos dois valores igualmente máximos.
Além disso, por favor note que iteritems()
pode levantar uma RunTimeException
enquanto adiciona ou remove itens do dicionário, e dict.iteritems
é removido em Python 3.
Utilize o dict.items()
Método para Python 3.x para obter chave com valor máximo no dicionário
Em Python 3.x, pode utilizar o método dict.items()
para iterar sobre pares de valor chave
do dicionário. É o mesmo método que o dict.iteritems()
em Python 2.
Um código de exemplo para este método é dado abaixo:
import operator
stats = {"key1": 20, "key2": 35, "key3": 44}
max_key = max(stats.items(), key=operator.itemgetter(1))[0]
print(max_key)
Resultado:
key3
uma solução geral e eficiente de memória para obter chave com valor máximo no dicionário
Curiosamente, existe outra solução que funciona tanto para Python 2 como para Python 3. A solução utiliza a função lambda
para obter a chave, e o método max
para assegurar que a chave
obtida é a máxima.
O código base para esta abordagem é dado abaixo:
import operator
stats = {"key1": 20, "key2": 35, "key3": 44}
max_key = max(stats, key=lambda key: stats[key])
print(max_key)
Resultado:
key3
Utilize max()
e dict.get()
Métodos para obter a chave com o valor máximo no dicionário
Outra solução para este problema pode ser simplesmente utilizando o método max()
incorporado. É fornecido com os stats
para obter o valor máximo, e para devolver a key
com o valor máximo, é utilizado o método dict.get()
.
Um código de exemplo é dado abaixo:
import operator
stats = {"key1": 20, "key2": 35, "key3": 44}
max_key = max(stats, key=stats.get)
print(max_key)
Resultado:
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