Python – Agrupar claves similares en el diccionario

A veces, mientras trabajamos con datos de diccionario, podemos tener problemas en los que necesitamos realizar una agrupación basada en substrings de claves y reformar los datos agrupados en claves similares. Esto puede tener aplicación en el preprocesamiento de datos. Analicemos ciertas formas en que se puede realizar esta tarea.

Método n.º 1: Uso del bucle
Esta es la forma bruta en la que realizamos esta tarea. En esto, verificamos el elemento usando una declaración condicional e insertamos las claves de acuerdo con la presencia de substrings.

# Python3 code to demonstrate working of 
# Group Similar keys in dictionary
# Using loop
  
# initializing Dictionary
test_dict = {'gfg1' : 1, 'is1' : 2, 'best1' : 3, 
            'gfg2' : 9, 'is2' : 8, 'best2' : 7,
            'gfg3' : 10, 'is3' : 5, 'best3' : 6}
  
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
  
# Group Similar keys in dictionary
# Using loop
res = []
res1, res2, res3 = {}, {}, {}
for key, value in test_dict.items():
  if 'gfg' in key:
    res1[key] = value
  elif 'is' in key:
    res2[key] = value
  elif 'best' in key:
    res3[key] = value
  
res.append(res1)
res.append(res2)
res.append(res3)
  
# printing result 
print("The grouped similar keys are : " + str(res)) 
Producción :

El diccionario original es: {‘best2’: 7, ‘best3’: 6, ‘is2’: 8, ‘is3’: 5, ‘best1’: 3, ‘gfg1’: 1, ‘gfg3’: 10, ‘is1 ‘: 2, ‘gfg2’: 9}
Las claves similares agrupadas son: [{‘gfg3’: 10, ‘gfg2’: 9, ‘gfg1’: 1}, {‘is2’: 8, ‘is3’: 5, ‘es1’: 2}, {‘mejor3’: 6, ‘mejor1’: 3, ‘mejor2’: 7}]

Método #2: Uso de la comprensión del diccionario
Esta es otra forma más en la que se puede realizar esta tarea. En esto, agrupamos la substring en claves utilizando la comprensión del diccionario.

# Python3 code to demonstrate working of 
# Group Similar keys in dictionary
# Using dictionary comprehension
  
# initializing Dictionary
test_dict = {'gfg1' : 1, 'is1' : 2, 'best1' : 3, 
            'gfg2' : 9, 'is2' : 8, 'best2' : 7,
            'gfg3' : 10, 'is3' : 5, 'best3' : 6}
  
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
  
# Group Similar keys in dictionary
# Using dictionary
res = []
res1 = {key : val for key, val in test_dict.items() if 'gfg' in key}
res2 = {key : val for key, val in test_dict.items() if 'is' in key}
res3 = {key : val for key, val in test_dict.items() if 'best' in key}
res.append(res1)
res.append(res2)
res.append(res3)
  
# printing result 
print("The grouped similar keys are : " + str(res)) 
Producción :

El diccionario original es: {‘best2’: 7, ‘best3’: 6, ‘is2’: 8, ‘is3’: 5, ‘best1’: 3, ‘gfg1’: 1, ‘gfg3’: 10, ‘is1 ‘: 2, ‘gfg2’: 9}
Las claves similares agrupadas son: [{‘gfg3’: 10, ‘gfg2’: 9, ‘gfg1’: 1}, {‘is2’: 8, ‘is3’: 5, ‘es1’: 2}, {‘mejor3’: 6, ‘mejor1’: 3, ‘mejor2’: 7}]

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 *