Programa de Python para agrupar claves con valores similares en un diccionario

Dado un diccionario con valores como una lista. Agrupe todas las claves con valores similares.

Entrada : test_dict = {“Gfg”: [5, 6], “es”: [8, 6, 9], “mejor”: [10, 9], “para”: [5, 2], “geeks” : [19]} 
Salida : [[‘Gfg’, ‘is’, ‘for’], [‘is’, ‘Gfg’, ‘best’], [‘best’, ‘is’], [‘for’ , ‘Gfg’]] 
Explicación : Gfg tiene 6, is tiene 6 y for tiene 5 que también está en Gfg, por lo tanto, agrupados.

Entrada : test_dict = {“Gfg”: [6], “es”: [8, 6, 9], “mejor”: [10, 9], “para”: [5, 2]} 
Salida : [[‘ Gfg’, ‘is’], [‘is’, ‘Gfg’, ‘best’], [‘best’, ‘is’]] 
Explicación : Gfg tiene 6, is tiene 6, por lo tanto agrupados. 
 

Método: Usar loop + any() + len()

La combinación de las funciones anteriores se puede utilizar para resolver este problema. En esto, verificamos si cada clave coincide con algún valor usando any(), len() se usa para verificar si las claves coincidentes exceden 1. La parte de iteración se lleva a cabo mediante un bucle.

Python3

# Python3 code to demonstrate working of 
# Group keys with similar values in Dictionary
# Using loop + any() + len()
  
# initializing dictionary
test_dict = {"Gfg": [5, 6], "is": [8, 6, 9], 
             "best": [10, 9], "for": [5, 2], 
             "geeks": [19]}
  
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
  
res = []
for key in test_dict:
    chr = [key]
    for ele in test_dict:
          
        # check with other keys 
        if key != ele:
              
            # checking for any match in values
            if any(i == j for i in test_dict[key] for j in test_dict[ele]):
                chr.append(ele)
    if len(chr) > 1:
        res.append(chr)
  
# printing result 
print("The dictionary after values replacement : " + str(res))

Producción:

El diccionario original es: {‘Gfg’: [5, 6], ‘is’: [8, 6, 9], ‘best’: [10, 9], ‘for’: [5, 2], ‘geeks ‘: [19]}

El diccionario después del reemplazo de valores: [[‘Gfg’, ‘is’, ‘for’], [‘is’, ‘Gfg’, ‘best’], [‘best’, ‘is’], [‘for’, ‘Gfg’]]

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 *