Cómo comprobar si un valor está en un diccionario en Python

Rayven Esplanada 18 julio 2021
  1. Usa get() y Key para comprobar si el valor existe en el diccionario
  2. Usa values() para comprobar si el valor especificado existe en un diccionario
  3. Comprueba si el valor existe en un diccionario si el valor es una lista
Cómo comprobar si un valor está en un diccionario en Python

Este tutorial muestra cómo se puede comprobar un valor si existe en un diccionario de Python. En él se tratan temas relevantes, como la búsqueda de un valor dado por una clave, la búsqueda de un valor específico y la búsqueda de un valor que sea un objeto o una colección.

Para empezar, deberías imprimir True si el valor existe en el diccionario; de lo contrario, imprime False.

Usa get() y Key para comprobar si el valor existe en el diccionario

Los diccionarios en Python tienen una función incorporada key(), que devuelve el valor de la clave dada. Al mismo tiempo, devolvería None si no existe. Puedes usar esta función como condición para determinar si un valor existe o no en un diccionario.

Primero declaremos un diccionario simple con claves int y valores de cadena.

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

Si quieres buscar el valor usando su par de claves, entonces la función key() es el camino a seguir. Por ejemplo, quieres buscar cualquier valor con el 6 como su clave; sigue el código de abajo.

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

Como la función simpDict no tiene la clave 6, este bloque de código dará como resultado False.

Usa values() para comprobar si el valor especificado existe en un diccionario

A diferencia de la situación en la búsqueda de un valor específico, buscar una clave dentro de un diccionario es muy sencillo; sólo tienes que usar la palabra clave in y la clave que buscas en el diccionario.

print(3 in simpDict)

Esto dará como resultado True ya que la clave 3 existe. Si reemplazamos el número por una clave inexistente, entonces saldrá False.

Por otro lado, puedes usar la función values() si quieres buscar un valor específico en el diccionario. El comando values() devolverá una lista de todos los valores dentro de un diccionario. Usando values(), puede utilizar la palabra clave in al diccionario y el valor especificado. Digamos que quieres saber si el valor Elephant está en el diccionario, ejecuta el siguiente código:

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

Esta línea dará True ya que la palabra Elephant existe en simpDict en la clave 5.

En Python 2.X, también hay otras dos funciones similares a values(), son los itervalues() y viewvalues(); estas funciones han sido desactualizadas en las versiones de Python 3.X.

Los comandos itervalues() y viewvalues() harán la misma tarea que el comando values(); sin embargo, las diferentes implementaciones, aunque muy insignificantes, afectan enormemente al tiempo de ejecución.

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

Ambos devolverán la misma salida que la función values(). Es importante señalar que la redundancia es probablemente la razón principal por la que estas funciones han sido desactualizadas de las versiones más recientes de Python.

Ahora, ¿qué pasa si los valores de un diccionario son estructuras de datos como una lista o un objeto? Averigüémoslo.

Comprueba si el valor existe en un diccionario si el valor es una lista

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

Ahora, tenemos un diccionario con claves int y una lista de caracteres como valores.

Digamos que queremos buscar si la lista ['c', 'd'] existe en el diccionario.

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

La salida resultante sería True; esto confirma que la comparación de colecciones mediante la iteración del diccionario también funciona.

¿Pero qué pasa si queremos comprobar si un valor dentro de un valor de la lista existe en el diccionario? Para resolver esto, simplemente haz un bucle sobre los valores y usa la palabra clave in la lista, en lugar de en el diccionario.

Por ejemplo, quieres comprobar si el carácter 'e' existe dentro de los valores de esta lista o no. Aquí está el código a ejecutar para eso:

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

La salida imprimirá True ya que 'e' existe en el diccionario.

En resumen, usa la función values() para iterar sobre los valores y comparar si el valor que buscas existe dentro de la lista de valores. Esto ayuda cuando quieres comprobar si un valor especificado existe en un diccionario.

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

Artículo relacionado - Python Dictionary