Encontrar chave por valor no Python Dicionário
-
Utilize
dict.items()
para encontrar chave por valor no Dicionário Python -
Utilize
.keys()
e.values()
para 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
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