Búsqueda de sitios web

Programa Python para comparar elementos en dos diccionarios


Los diccionarios son un tipo de datos potente en Python que le permiten almacenar datos como pares clave-valor. En este artículo, discutiremos cómo comparar elementos en dos diccionarios en Python. Repasaremos la sintaxis para comparar elementos del diccionario y proporcionaremos ejemplos de cómo hacerlo.

Diccionarios en Python

En Python, se puede crear un diccionario colocando una secuencia de elementos entre llaves { }, separadas por 'coma' ( , ). El diccionario contiene pares de valores, uno es la clave y el otro elemento del par correspondiente es su valor.

Los valores de un diccionario pueden ser de cualquier tipo de datos y pueden duplicarse, mientras que las claves no pueden repetirse y deben ser inmutables y únicas. El nombre de las claves en un diccionario distingue entre mayúsculas y minúsculas. El diccionario también se puede crear mediante la función incorporada dict(). Se puede crear un diccionario vacío simplemente colocándolo entre llaves { }.

Podemos declarar un diccionario de la siguiente manera:

thisdict = { "brand": "Ford", "model": "Mustang", year": 1964 }

En este artículo, veremos cómo podemos comparar elementos de 2 diccionarios en Python usando 3 métodos diferentes.

Usando el operador de igualdad (== )

En este método, compararemos dos cadenas usando el operador de comparación doble igual. El operador == devuelve verdadero cuando el lado izquierdo y el lado derecho de los operadores son iguales, y devuelve falso cuando ambos no son iguales.

Si los 2 diccionarios que nos dieron son iguales e idénticos entre sí, este operador devolverá verdadero y podemos concluir que los dos diccionarios son iguales. Y devolverá falso si no son iguales.

Ejemplo

En el siguiente ejemplo, estamos usando el operador == para comparar 2 diccionarios.

dict1 = { 'first' : 'apple' , 'second' : 'orange' , 'third' : 'mango' }
dict2 = { 'first' : 'apple' , 'second' : 'orange' , 'third' : 'grapes'}
if dict1 == dict2:
   print (" dict1 is equal to dict2 ")
else:
   print (" dict1 is not equal to dict2 ")

Producción

El resultado del código anterior será:

dict1 is not equal to dict2

Usar bucles para comparar dos diccionarios

En este método, compararemos los elementos de dos diccionarios uno por uno iterando a lo largo de un diccionario y verificando la clave y los valores para cada iteración con el par de clave y valor correspondiente en otro diccionario.

También comprobaremos la longitud de ambos diccionarios; si no son iguales, podemos concluir directamente que los diccionarios no serán iguales. Para obtener el valor correspondiente a una clave en el diccionario usamos el. función get que proporciona el valor de una clave dada como argumento de la función.

Ejemplo

En el siguiente ejemplo lo haremos.

dict1 = { 'first' : 'apple' , 'second' : 'orange' , 'third' : 'mango' }
dict2 = { 'first' : 'banana' , 'second' : 'guava' , 'third' : 'grapes'}
if len (dict1) != len (dict2):
    print ("The dictionaries are not equal ")
else:
    flag=0
    for i in dict1:
        if dict1.get(i) != dict2.get(i):
            flag=1
            break
    if flag==0:
        print (" dict1 is equal to dict2 ")
    else:
        print (" dict1 is not equal to dict2 ")

Producción

El resultado del programa anterior será el siguiente:

dict1 is not equal to dict2

Usando el método de comprensión de listas

En este método, utilizaremos la comprensión de listas para comparar dos diccionarios. La comprensión de listas es una forma más breve de escribir un bucle for en una lista, tupla o diccionario. En este método, recorreremos uno de los diccionarios y compararemos si los valores para la misma clave en ambos diccionarios son iguales o no. Si son iguales los diccionarios serán iguales y no iguales si no son iguales.

Ejemplo

El siguiente código de Python muestra cómo podemos usar la comprensión de listas para comparar dos diccionarios determinados e imprimir el resultado.

dict1 = { 'first' : 'apple' , 'second' : 'orange' , 'third' : 'mango' }
dict2 = { 'first' : 'banana' , 'second' : 'guava' , 'third' : 'grapes' }
ans = all ( dict2.get (key) == value for key , value in dict1.items() )
if ans == 'true':
   print ("dict1 and dict2 are equal")
else:
   print ("dict1 and dict2 are not equal")

Producción

El resultado del código anterior será el siguiente:

dict1 and dict2 are not equal

Conclusión

En este artículo, conocimos los diccionarios en Python, donde podemos usar diccionarios. También aprendimos cómo podemos comparar 2 diccionarios determinados. Nos encontramos con 3 métodos diferentes para comparar 2 diccionarios.

El primer método implicó el uso del operador de igualdad (==). El segundo método implicó el uso de iteración para verificar todos y cada uno de los pares clave-valor de ambos diccionarios. En el método final, utilizamos el método de comprensión de listas de Python para iterar sobre el par clave-valor de un diccionario y verificar los valores de las claves en ambos diccionarios y compararlos.

La complejidad temporal del primer enfoque es O (1), ya que utiliza una comparación simple. Mientras que los otros 2 métodos tienen una complejidad temporal de O (n). donde n es la longitud del diccionario.

Artículos relacionados: