Python: prueba de registros anidados vacíos

A veces, mientras trabajamos con los diccionarios de Python, podemos tener un problema en el que necesitamos probar si un diccionario en particular tiene registros anidados y todos ellos están vacíos, es decir, sin clave o sin valor en el caso de la lista. Este tipo de problema es bastante común en dominios de datos como Data Science.
Vamos a discutir cierta forma en que se puede realizar esta tarea.

Entrada : test_dict = {‘Gfg’: [], ‘geeks’: {}}
Salida : Verdadero

Entrada : test_dict = {‘Gfg’: 4}
Salida : Falso

Método n. ° 1: usar recursión +all() + isinstance()
La combinación de las funciones anteriores se puede usar para resolver este problema. En esto, verificamos todos los anidamientos usando all(), recursividad e isinstance() se usa para probar el diccionario o la lista.

# Python3 code to demonstrate working of 
# Test for empty Nested Records
# Using recursion + all() + isinstance
  
# Helper function
def hlper_fnc(test_dict):
    if isinstance(test_dict, dict):
        return all(hlper_fnc(sub) for _, sub in test_dict.items())
    if isinstance(test_dict, list):
        return all(hlper_fnc(sub) for sub in test_dict)
    return False
  
# initializing dictionary
test_dict = {'Gfg': [], 'is': { 'best': [], 'for': {} }, 'geeks': {}}
  
# printing original dictionary
print("The original dictionary : " + str(test_dict))
  
# Test for empty Nested Records
# Using recursion + all() + isinstance
res = hlper_fnc(test_dict)
  
# printing result 
print("Is dictionary without data ? : " + str(res)) 
Producción :

El diccionario original: {‘is’: {‘best’: [], ‘for’: {}}, ‘geeks’: {}, ‘Gfg’: []}
¿Es el diccionario sin datos? : Verdadero

Publicación traducida automáticamente

Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *