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