Programa de Python para dividir el diccionario y sus claves en K diccionarios iguales

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

Deja una respuesta

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