Una lista en Python puede tener elementos de diferentes tipos. A veces, mientras trabajamos con datos, podemos tener un problema en el que necesitamos encontrar el recuento de diccionarios en una lista en particular. Esto puede tener aplicación en dominios de datos, incluido el desarrollo web y el aprendizaje automático. Analicemos ciertas formas en que se puede realizar esta tarea.
Entrada : test_list = [4, 5, ‘gfg’]
Salida : 0Entrada : test_list = [{‘gfg’: 1}]
Salida : 1Entrada : test_list = [10, {‘gfg’: 1}, {‘ide’: 2, ‘code’: 3}, 20]
Salida : 2Entrada : lista_prueba = [4, 5, ‘gfg’, {‘mejor’: 32, ‘gfg’: 1}, {‘CS’: 4}, (1, 2)]
Salida : 2
Método n.º 1: Uso de la comprensión de listas +isinstance()
La combinación de las funcionalidades anteriores se puede utilizar para resolver este problema. En esto, realizamos la iteración usando la comprensión de listas y probamos el diccionario usando isinstance().
# Python3 code to demonstrate working of # Dictionary Count in List # Using list comprehension + isinstance() # initializing list test_list = [10, {'gfg' : 1}, {'ide' : 2, 'code' : 3}, 20] # printing original list print("The original list is : " + str(test_list)) # Dictionary Count in List # Using list comprehension + isinstance() res = len([ele for ele in test_list if isinstance(ele, dict)]) # printing result print("The Dictionary count : " + str(res))
The original list is : [10, {'gfg': 1}, {'code': 3, 'ide': 2}, 20] The Dictionary count : 2
Método #2: Usar recursividad + isinstance()
(para diccionarios anidados)
La combinación de las funcionalidades anteriores se puede usar para resolver este problema. En esto, también resolvemos el problema del anidamiento interno usando recursividad.
# Python3 code to demonstrate working of # Dictionary Count in List # Using recursion + isinstance() # helper_func def hlper_fnc(test_list): count = 0 if isinstance(test_list, str): return 0 if isinstance(test_list, dict): return hlper_fnc(test_list.values()) + hlper_fnc(test_list.keys()) + 1 try: for idx in test_list: count = count + hlper_fnc(idx) except TypeError: return 0 return count # initializing list test_list = [10, {'gfg': 1}, {'code': 3, 'ide': 2}, 20] # printing original list print("The original list is : " + str(test_list)) # Dictionary Count in List # Using recursion + isinstance() res = hlper_fnc(test_list) # printing result print("The Dictionary count : " + str(res))
The original list is : [10, {'gfg': 1}, {'code': 3, 'ide': 2}, 20] The Dictionary count : 2
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