A veces, mientras trabajamos con los valores del diccionario de Python, podemos tener un problema en el que necesitamos reinicializar todas las listas de valores de todas las claves en el diccionario a una K constante. Este tipo de problema puede tener aplicación en dominios que usan datos, como Machine Learning. y ciencia de datos. Vamos a discutir cierta forma en que se puede realizar esta tarea.
Entrada : test_dict = {‘Gfg’: [[4, 5], [8, 9, 20], [1, 3, 4, ‘ups’]]}
Salida : {‘Gfg’: [[4, 4] , [4, 4, 4], [4, 4, 4, 4]]}
Entrada : test_dict = {‘Gfg’: «mejor»}
Salida : {‘Gfg’: 4}
Método: Usar recursividad + tipo() + comprensión de diccionario + elements() + bucle
La combinación de las funcionalidades anteriores puede ayudar a resolver este problema. En este, realizamos la asignación de valores utilizando la comprensión del diccionario y los tipos se prueban utilizando el tipo. Los elements() se utilizan para extraer valores del diccionario y para realizar cada anidamiento se maneja mediante recursividad.
Python3
# Python3 code to demonstrate working of # Reinitialize Value lists to K in Dictionary # Using recursion + type() + dictionary comprehension + items() + loop # helper function def helper_fnc(ele, K): if type(ele) is list: return [helper_fnc(val, K) for val in ele] elif type(ele) is dict: return {key : helper_fnc(val, K) for key, val in ele.items()} return K # initializing dictionary test_dict = {'gfg' : [4, 6, 7], 'is' : 8, 'best' : [[4, 5], [8, 9, 20]]} # printing original dictionary print("The original dictionary : " + str(test_dict)) # initializing K K = 4 # Reinitialize Value lists to K in Dictionary # Using recursion + type() + dictionary comprehension + items() + loop res = helper_fnc(test_dict, K) # printing result print("The Reinitialized dictionary : " + str(dict(res)))
El diccionario original: {‘mejor’: [[4, 5], [8, 9, 20]], ‘es’: 8, ‘gfg’: [4, 6, 7]}
El diccionario reinicializado: {‘mejor ‘: [[4, 4], [4, 4, 4]], ‘es’: 4, ‘gfg’: [4, 4, 4]}
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