Saltar al contenido principal

Cómo verificar si dos diccionarios son iguales en Python

Aquí tienes un tutorial paso a paso sobre cómo verificar si dos diccionarios son iguales en Python:

Paso 1: Declarar dos diccionarios

Comienza declarando dos diccionarios que deseas comparar. Por ejemplo:

dict1 = {"nombre": "Juan", "edad": 30, "ciudad": "Nueva York"}
dict2 = {"nombre": "Juan", "edad": 30, "ciudad": "Nueva York"}

Paso 2: Utilizar el operador ==

Para verificar si dos diccionarios son iguales, puedes utilizar el operador ==. Este operador compara los pares clave-valor de los diccionarios. Si todos los pares clave-valor son iguales, los diccionarios se consideran iguales. Por ejemplo:

if dict1 == dict2:
print("Los diccionarios son iguales")
else:
print("Los diccionarios no son iguales")

Esto imprimirá "Los diccionarios son iguales" ya que tanto dict1 como dict2 tienen los mismos pares clave-valor.

Paso 3: Verificar la igualdad sin importar el orden

Por defecto, el operador == verifica la igualdad dependiendo del orden. Esto significa que si los diccionarios tienen los mismos pares clave-valor pero en un orden diferente, se considerarán desiguales. Para verificar la igualdad sin importar el orden, puedes utilizar la clase collections.Counter. Por ejemplo:

from collections import Counter

def es_igual(dict1, dict2):
return Counter(dict1) == Counter(dict2)

if es_igual(dict1, dict2):
print("Los diccionarios son iguales")
else:
print("Los diccionarios no son iguales")

Esto también imprimirá "Los diccionarios son iguales" ya que la función es_igual() compara los diccionarios utilizando Counter.

Paso 4: Verificar la igualdad profunda

Si tus diccionarios contienen diccionarios anidados, es posible que necesites verificar la igualdad profunda. Esto significa que no solo los pares clave-valor de nivel superior deben ser iguales, sino también los pares clave-valor anidados. Una forma de lograr esto es utilizando el módulo json para convertir los diccionarios a cadenas JSON y compararlas. Por ejemplo:

import json

def es_igual_profundo(dict1, dict2):
return json.dumps(dict1, sort_keys=True) == json.dumps(dict2, sort_keys=True)

if es_igual_profundo(dict1, dict2):
print("Los diccionarios son igualmente profundos")
else:
print("Los diccionarios no son igualmente profundos")

Esto también imprimirá "Los diccionarios son igualmente profundos" ya que la función es_igual_profundo() convierte los diccionarios a cadenas JSON y los compara.

¡Eso es todo! Ahora sabes cómo verificar si dos diccionarios son iguales en Python. Puedes elegir el método adecuado según tus requisitos: el operador == para la igualdad dependiente del orden, collections.Counter para la igualdad independiente del orden o json.dumps() para la igualdad profunda.