Dado un diccionario y un valor K, extraiga claves cuya suma de valores sea igual a K.
Entrada : {“Gfg”: 3, “es”: 5, “Mejor”: 9, “para”: 8, “Geeks”: 10}, K = 17
Salida : [‘Mejor’, ‘para’]
Explicación : 9 + 8 = 17, de ahí que se extraigan esas claves.Entrada : {“Gfg”: 3, “es”: 5, “Mejor”: 9, “para”: 8, “Geeks”: 10}, K = 19
Salida : [‘Best’, ‘Geeks’]
Explicación : 9 + 10 = 19, de ahí que se extraigan esas claves.
Método #1: Usar bucle
Esta es una de las formas en que se puede realizar esta tarea. En esto, iteramos para todas las claves y las siguientes claves en la lista interna, y seguimos verificando la suma de valores. Si es igual a K. Las claves se almacenan.
Python3
# Python3 code to demonstrate working of # Dictionary Keys whose Values summation equals K # Using loop # initializing dictionary test_dict = {"Gfg" : 3, "is" : 5, "Best" : 9, "for" : 8, "Geeks" : 10} # printing original dictionary print("The original dictionary is : " + str(test_dict)) # initializing K K = 14 # extracting keys and values keys = list(test_dict.keys()) values = list(test_dict.values()) res = None for i in range(len(keys)): for j in range(i + 1, len(keys)): # checking if values equals K if values[i] + values[j] == K: res = [keys[i], keys[j]] # printing result print("Keys whose sum equals K : " + str(res))
The original dictionary is : {'Gfg': 3, 'is': 5, 'Best': 9, 'for': 8, 'Geeks': 10} Keys whose sum equals K : ['is', 'Best']
Método #2: Usar la comprensión de listas
Esta es otra forma más en la que se puede realizar esta tarea. En esto, realizamos una tarea similar al método anterior pero de manera abreviada utilizando la comprensión de listas.
Python3
# Python3 code to demonstrate working of # Dictionary Keys whose Values summation equals K # Using list comprehension # initializing dictionary test_dict = {"Gfg" : 3, "is" : 5, "Best" : 9, "for" : 8, "Geeks" : 10} # printing original dictionary print("The original dictionary is : " + str(test_dict)) # initializing K K = 14 # extracting keys and values keys = list(test_dict.keys()) values = list(test_dict.values()) # checking for keys in one liner res = [[keys[i], keys[j]] for i in range(len(keys)) for j in range(i + 1, len(keys)) if values[i] + values[j] == K] # printing result print("Keys whose sum equals K : " + str(res))
The original dictionary is : {'Gfg': 3, 'is': 5, 'Best': 9, 'for': 8, 'Geeks': 10} Keys whose sum equals K : [['is', '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