Python: claves de diccionario cuya suma de valores es igual a K

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)) 
Producción

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)) 
Producción

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *