Cómo comprobar si un diccionario es un subconjunto de otro diccionario en Python
Aquí tienes un tutorial paso a paso sobre cómo verificar si un diccionario es un subconjunto de otro diccionario en Python.
Paso 1: Crear dos diccionarios
- Comienza creando dos diccionarios que deseas comparar. Puedes definirlos manualmente o generarlos dinámicamente según tus requisitos. Para este tutorial, consideremos los siguientes diccionarios:
dict1 = {'a': 1, 'b': 2, 'c': 3}
dict2 = {'a': 1, 'c': 3}
Paso 2: Utiliza el método items()
- Para comparar los diccionarios, debes iterar sobre los pares clave-valor del diccionario más pequeño (el subconjunto potencial) y verificar si cada par clave-valor existe en el diccionario más grande. El método
items()devuelve una lista de tuplas que contienen los pares clave-valor de un diccionario.
for key, value in dict2.items():
if key in dict1 and dict1[key] == value:
continue
else:
print("dict2 no es un subconjunto de dict1")
break
else:
print("dict2 es un subconjunto de dict1")
Paso 3: Explicación
- El bucle
foritera sobre cada par clave-valor endict2utilizando el métodoitems(). - Dentro del bucle, verifica si la clave actual existe en
dict1y si el valor correspondiente endict1coincide con el valor endict2. - Si la condición se cumple para todos los pares clave-valor en
dict2, se ejecuta el bloqueelse, lo que indica quedict2es un subconjunto dedict1. - Si algún par clave-valor no coincide o si una clave no existe en
dict1, se omite el bloqueelsey se imprime un mensaje que indica quedict2no es un subconjunto dedict1.
Paso 4: Prueba el código
- Finalmente, puedes probar el código ejecutándolo con diferentes diccionarios para verificar si uno es un subconjunto del otro. Aquí tienes un ejemplo:
dict1 = {'a': 1, 'b': 2, 'c': 3}
dict2 = {'a': 1, 'c': 3}
for key, value in dict2.items():
if key in dict1 and dict1[key] == value:
continue
else:
print("dict2 no es un subconjunto de dict1")
break
else:
print("dict2 es un subconjunto de dict1")
Salida:
dict2 es un subconjunto de dict1
En este ejemplo, dict2 es un subconjunto de dict1 porque todos los pares clave-valor en dict2 también existen en dict1 con los mismos valores.