Dado un diccionario, divídalo en una lista de diccionarios iguales de tamaño k, dividiendo el valor de cada clave.
Entrada : test_dict = {«Gfg»: 9, «es»: 6, «mejor»: 12}, K = 3
Salida : [{‘Gfg’: 3.0, ‘es’: 2.0, ‘mejor’: 4.0}, {‘Gfg’: 3.0, ‘is’: 2.0, ‘best’: 4.0}, {‘Gfg’: 3.0, ‘is’: 2.0, ‘best’: 4.0}]
Explicación : los valores se distribuyen por igual entre los diccionarios.Entrada : test_dict = {«Gfg»: 6, «es»: 4, «mejor»: 2}, K = 2
Salida : [{‘Gfg’: 3.0, ‘es’: 2.0, ‘mejor’: 1.0}, {‘Gfg’: 3.0, ‘is’: 2.0, ‘best’: 1.0}]
Explicación : los valores se distribuyen por igual entre los diccionarios.
Método #1: Usar bucle
Esta es una de las formas en que se puede realizar esta tarea. En esto, calculamos el valor de cada clave requerida y agregamos cada diccionario a la lista de diccionarios.
Python3
# Python3 code to demonstrate working of # Divide dictionary into K equal dictionaries # Using loop # initializing dictionary test_dict = {"Gfg": 20, "is": 36, "best": 100} # printing original dictionary print("The original dictionary is : " + str(test_dict)) # initializing size K = 4 # constructing new dict temp = dict() for key in test_dict: temp[key] = test_dict[key] / 4 # creating list res = [] for idx in range(K): res.append(temp) # printing result print("Required dictionary list : " + str(res))
Producción:
El diccionario original es: {‘Gfg’: 20, ‘is’: 36, ‘best’: 100}
Lista de diccionarios requeridos: [{‘Gfg’: 5.0, ‘is’: 9.0, ‘best’: 25.0}, { ‘Gfg’: 5.0, ‘is’: 9.0, ‘best’: 25.0}, {‘Gfg’: 5.0, ‘is’: 9.0, ‘best’: 25.0}, {‘Gfg’: 5.0, ‘is’: 9.0, ‘mejor’: 25.0}]
Método #2: Uso de comprensión de diccionario + comprensión de lista
Esta es otra forma más en la que se puede realizar esta tarea. En esto, formamos un diccionario usando la comprensión del diccionario y una lista usando la comprensión de la lista como abreviatura para resolver este problema.
Python3
# Python3 code to demonstrate working of # Divide dictionary into K equal dictionaries # Using dictionary comprehension + list comprehension # function to divide dictionary # and keys into K equal dictionaries def divideDictKeys(dictionary, K): # constructing new dict # using dictionary comprehension temp = {key: test_dict[key] / K for key in test_dict} # creating list # using list comprehension res = [temp for idx in range(K)] return str(res) # driver code # initializing dictionary test_dict = {"Gfg": 20, "is": 36, "best": 100} # initializing size K = 4 # printing original dictionary print("The original dictionary is : " + str(test_dict)) # printing result print("Required dictionary list : " + divideDictKeys(test_dict, K))
Producción:
El diccionario original es: {‘Gfg’: 20, ‘is’: 36, ‘best’: 100}
Lista de diccionarios requeridos: [{‘Gfg’: 5.0, ‘is’: 9.0, ‘best’: 25.0}, { ‘Gfg’: 5.0, ‘is’: 9.0, ‘best’: 25.0}, {‘Gfg’: 5.0, ‘is’: 9.0, ‘best’: 25.0}, {‘Gfg’: 5.0, ‘is’: 9.0, ‘mejor’: 25.0}]
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA