Verificar se um valor está num Dicionário em Python

Rayven Esplanada 30 janeiro 2023
  1. Utilize get() e a chave para verificar se o valor existe num dicionário
  2. Utilize values() para verificar se o valor especificado existe num Dicionário
  3. Verifique se o valor existe num dicionário se o valor é uma lista
Verificar se um valor está num Dicionário em Python

Este tutorial mostra como verificar um valor se ele existe dentro de um dicionário Python. Aqui, cobriremos tópicos relevantes, tais como procurar um valor dado por uma chave, procurar um valor específico, e procurar um valor que é um objecto ou uma colecção.

Para começar, seria conveniente imprimir True se o valor existir no dicionário; caso contrário, imprimir False.

Utilize get() e a chave para verificar se o valor existe num dicionário

Os dicionários em Python têm uma função integrada key(), que retorna o valor da chave dada. Ao mesmo tempo, retorna None se não existir. Pode utilizar esta função como uma condição para determinar se existe ou não um valor dentro de um dicionário.

Vamos primeiro declarar um dicionário simples com chaves int e valores de string.

simpDict = {1: "Ant", 2: "Bear", 3: "Cat", 4: "Dog", 5: "Elephant"}

Se quiser procurar o valor utilizando o seu par de chaves, então a função key() é o caminho a seguir. Por exemplo, pretende procurar qualquer valor com o 6 como chave; siga o código abaixo.

if simpDict.key(6) != None:
    print("True")
else:
    print("False")

Uma vez que a função simpDict não tem a chave 6, este bloco de código produzirá o código False.

Utilize values() para verificar se o valor especificado existe num Dicionário

Ao contrário da situação em procurar um valor específico, procurar uma chave dentro de um dicionário é muito simples; basta utilizar a palavra-chave in e a chave que se procura no dicionário.

print(3 in simpDict)

Isto produzirá a palavra True, uma vez que a chave 3 existe. Se substituirmos o número por uma chave inexistente, então resultará em False.

Por outro lado, pode utilizar a função values() se quiser procurar um valor específico no dicionário. O comando values() devolverá uma lista de todos os valores dentro de um dicionário. Utilizando values(), pode utilizar a palavra-chave in para o dicionário e o valor especificado. Digamos que quer saber se o valor Elephant está no dicionário, execute o seguinte código:

print("Elephant" in simpDict.values())

Esta linha produzirá True, uma vez que a palavra Elephant existe em simpDict na chave 5.

Em Python 2.X, existem também duas outras funções semelhantes a values(), são os itervalues() e viewvalues(); estas funções foram depreciadas nas versões Python 3.X.

Os comandos itervalues() e viewvalues() farão a mesma tarefa que o comando values(); contudo, implementações diferentes, embora muito insignificantes, afectam grandemente o tempo de execução.

print("Elephant" in simpDict.itervalues())
print("Elephant" in simpDict.viewvalues())

Ambos retornarão a mesma saída que a função values(). É importante notar que a redundância é provavelmente a principal razão pela qual estas funções foram depreciadas das versões mais recentes do Python.

Agora, e se os valores de um dicionário forem estruturas de dados como uma lista ou um objecto? Vamos descobrir.

Verifique se o valor existe num dicionário se o valor é uma lista

listDict = {1: ["a", "b"], 2: ["b", "c"], 3: ["c", "d"], 4: ["d", "e"]}

Agora, temos um dicionário com teclas int e uma lista de caracteres como valores.

Digamos que queremos procurar se a lista ['c', 'd'] existe no dicionário.

print(["c", "d"] in listDict.values())

O resultado seria True; isto confirma que a comparação de colecções através da iteração do dicionário também funciona.

Mas e se quiser verificar se existe um valor dentro de uma lista de valores no dicionário? Para resolver isto, basta passar por cima dos valores e utilizar a palavra-chave in na lista, em vez de no dicionário.

Por exemplo, pretende verificar se o carácter 'e' existe ou não dentro dos valores desta lista. Aqui está o código a executar para isso:

tof = False
for value in listDict.values():
    if "e" in value:
        tof = True
        break
print(tof)

A saída imprimirá True, uma vez que 'e' existe no dicionário.

Em resumo, utilizar a função values() para iterar sobre os valores e comparar se o valor que se procura existe dentro da lista de valores. Isto ajuda quando se pretende verificar se um valor especificado existe num dicionário.

Rayven Esplanada avatar Rayven Esplanada avatar

Skilled in Python, Java, Spring Boot, AngularJS, and Agile Methodologies. Strong engineering professional with a passion for development and always seeking opportunities for personal and career growth. A Technical Writer writing about comprehensive how-to articles, environment set-ups, and technical walkthroughs. Specializes in writing Python, Java, Spring, and SQL articles.

LinkedIn

Artigo relacionado - Python Dictionary