Python: combina claves por valores

Dado un diccionario, combine las claves para asignar valores comunes.

Ejemplos:

Entrada : test_dict = {1:6, 8:1, 9:3, 10:3, 12:6, 4:9, 2:3} 
Salida : {‘1-12’: 6, ‘2-9-10 ‘: 3, ‘4’: 9, ‘8’: 1} 
Explicación : todas las claves con valores similares se fusionaron.

Entrada : test_dict = {1:6, 8:1, 9:3, 4:9, 2:3} 
Salida : {‘1’: 6, ‘2-9’: 3, ‘4’: 9, ‘8 ‘: 1} 
Explicación : todas las claves con valores similares se fusionaron. 

Enfoque: uso de defaultdict() + bucle

Esta tarea se realiza en 2 pasos, primero, agrupar todos los valores y almacenar claves, y en el segundo paso asignar claves fusionadas a valores comunes.

Python3

# Python3 code to demonstrate working of
# Merge keys by values
# Using defaultdict() + loop
from collections import defaultdict
 
# initializing dictionary
test_dict = {1: 6, 8: 1, 9: 3, 10: 3, 12: 6, 4: 9, 2: 3}
 
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
 
# grouping values
temp = defaultdict(list)
for key, val in sorted(test_dict.items()):
    temp[val].append(key)
 
res = dict()
# merge keys
for key in temp:
    res['-'.join([str(ele) for ele in temp[key]])] = key
 
# printing result
print("The required result : " + str(res))

Producción:

El diccionario original es: {1: 6, 8: 1, 9: 3, 10: 3, 12: 6, 4: 9, 2: 3} 
El resultado requerido: {‘1-12’: 6, ‘2- 9-10’: 3, ‘4’: 9, ‘8’: 1}

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 *