Dada una lista con todos los elementos del diccionario, la tarea es escribir un programa Python para extraer claves que tengan valores similares en todos los diccionarios.
Ejemplos:
Entrada : lista_prueba = [{“Gfg”: 5, “es”: 8, “mejor”: 0}, {“Gfg”: 5, “es”: 1, “mejor”: 0}, {“Gfg”: 5, “es”: 0, “mejor”: 0}]
Salida : [‘Gfg’, ‘mejor’]
Explicación : Todos los valores de Gfg son 5 y mejor tiene 0 como todos sus valores en todos los diccionarios.Entrada : lista_prueba = [{“Gfg”: 5, “es”: 8, “mejor”: 1}, {“Gfg”: 5, “es”: 1, “mejor”: 0}, {“Gfg”: 5, «es»: 0, «mejor»: 0}]
Salida : [‘Gfg’]
Explicación : todos los valores de Gfg son 5.
Método 1: Usar teclas() y bucle
En esto, iteramos a través de todos los elementos de la lista usando loop y extrayendo claves usando keys(). Para cada clave, se compara la clave de cada diccionario, si se encuentra similar, se agrega la clave al resultado.
Python3
# initializing Matrix test_list = [{"Gfg": 5, "is": 8, "best": 0}, {"Gfg": 5, "is": 1, "best": 0}, {"Gfg": 5, "is": 0, "best": 0}] # printing original list print("The original list is : " + str(test_list)) # getting keys keys = list(test_list[0].keys()) res = [] # iterating each dictionary for similar key's value for key in keys: flag = 1 for ele in test_list: # checking for similar values if test_list[0][key] != ele[key]: flag = 0 break if flag: res.append(key) # printing result print("Similar values keys : " + str(res))
Producción:
La lista original es: [{‘Gfg’: 5, ‘is’: 8, ‘best’: 0}, {‘Gfg’: 5, ‘is’: 1, ‘best’: 0}, {‘Gfg’ : 5, ‘es’: 0, ‘mejor’: 0}]
Claves de valores similares: [‘Gfg’, ‘best’]
Método 2: Usar all() , loop y keys()
En esto, el bucle interno se evita y se reemplaza por all() que verifica todas las claves que tienen valores similares y luego se extrae la clave.
Python3
# initializing Matrix test_list = [{"Gfg": 5, "is": 8, "best": 0}, {"Gfg": 5, "is": 1, "best": 0}, {"Gfg": 5, "is": 0, "best": 0}] # printing original list print("The original list is : " + str(test_list)) # getting keys keys = list(test_list[0].keys()) res = [] # iterating each dictionary for similar key's value for key in keys: # using all to check all keys with similar values flag = all(test_list[0][key] == ele[key] for ele in test_list) if flag: res.append(key) # printing result print("Similar values keys : " + str(res))
Producción:
La lista original es: [{‘Gfg’: 5, ‘is’: 8, ‘best’: 0}, {‘Gfg’: 5, ‘is’: 1, ‘best’: 0}, {‘Gfg’ : 5, ‘es’: 0, ‘mejor’: 0}]
Claves de valores similares: [‘Gfg’, ‘best’]
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