Encontrar chave por valor no Python Dicionário

Jinku Hu 30 janeiro 2023
  1. Utilize dict.items() para encontrar chave por valor no Dicionário Python
  2. Utilize .keys() e .values() para encontrar chave por valor no Python dicionário
Encontrar chave por valor no Python Dicionário

O dicionário é uma colecção de itens num par de chaves de valor. Os itens armazenados num dicionário não estão ordenados. Neste artigo, iremos introduzir diferentes formas de encontrar chave por valor num dicionário Python. Normalmente, um valor é acedido usando uma chave, mas aqui acederemos a uma chave usando um valor. Aqui a chave é uma identidade associada com o valor.

Utilize dict.items() para encontrar chave por valor no Dicionário Python

dict.items() método devolve uma lista cujo elemento individual é um tuple que consiste na chave do valor do dicionário. Podemos obter a chave iterando o resultado de dict.items() e comparando o valor com o segundo elemento da tupla.

Exemplo de código:

my_dict = {"John": 1, "Michael": 2, "Shawn": 3}


def get_key(val):
    for key, value in my_dict.items():
        if val == value:
            return key

    return "There is no such Key"


print(get_key(1))
print(get_key(2))

Resultado:

John
Michael

Utilize .keys() e .values() para encontrar chave por valor no Python dicionário

dict.keys() retorna uma lista constituída por chaves do dicionário; dict.values() retorna uma lista constituída por valores do dicionário. A ordem dos itens gerados em .keys() e .values() é a mesma.

O método index() da lista Python dá o índice do argumento dado. Podemos passar o valor para o método index() da lista de chaves gerada para obter o índice deste valor. Depois a chave poderia ser obtida acedendo à lista de valores gerada com o índice retornado.

my_dict = {"John": 1, "Michael": 2, "Shawn": 3}

list_of_key = list(my_dict.keys())
list_of_value = list(my_dict.values())

position = list_of_value.index(1)
print(list_of_key[position])

position = list_of_value.index(2)
print(list_of_key[position])

Resultado:

John
Michael
Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook

Artigo relacionado - Python Dictionary