Python: elementos del diccionario en el rango de valores

Dado un rango de valores, extrae todos los elementos cuyas claves se encuentran en el rango de valores.

Entrada : {‘Gfg’: 6, ‘es’: 7, ‘mejor’: 9, ‘para’: 8, ‘geeks’: 11}, i, j = 9, 12 Salida: {‘mejor’:
9 , ‘geeks’: 11}
Explicación : se extrajeron las teclas dentro del rango 9 y 11.

Entrada : {‘Gfg’: 6, ‘is’: 7, ‘best’: 9, ‘for’: 8, ‘geeks’: 11}, i, j = 14, 18 Salida: {} Explicación:
No hay
valores en rango.

Método #1: Usar bucle 

Esta es la forma bruta en la que se puede realizar esta tarea. En esto, ejecutamos un ciclo para todas las claves con controles condicionales para el rango de valores.  

Python3

# Python3 code to demonstrate working of 
# Dictionary items in value range
# Using loop
  
# initializing dictionary
test_dict = {'Gfg' : 6, 'is' : 7, 'best' : 9, 'for' : 8, 'geeks' : 11} 
  
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
  
# initializing range 
i, j = 8, 12
  
# using loop to iterate through all keys
res = dict()
for key, val in test_dict.items():
    if int(val) >= i and int(val) <= j:
        res[key] = val
  
# printing result 
print("The extracted dictionary : " + str(res)) 
Producción

The original dictionary is : {'Gfg': 6, 'is': 7, 'best': 9, 'for': 8, 'geeks': 11}
The extracted dictionary : {'best': 9, 'for': 8, 'geeks': 11}

Método #2: Usando filter() + lambda + comprensión de diccionario 

La combinación de las funciones anteriores se puede utilizar para resolver este problema. En esto, realizamos la tarea de filtrar usando filter() y lambda se usa para verificaciones condicionales.

Python3

# Python3 code to demonstrate working of 
# Dictionary items in value range
# Using filter() + lambda + dictionary comprehension 
  
# initializing dictionary
test_dict = {'Gfg' : 6, 'is' : 7, 'best' : 9, 'for' : 8, 'geeks' : 11} 
  
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
  
# initializing range 
i, j = 8, 12
  
# using dictionary comprehension to compile result in one 
res = {key: val for key, val in filter(lambda sub: int(sub[1]) >= i and
                                   int(sub[1]) <= j, test_dict.items())}
  
# printing result 
print("The extracted dictionary : " + str(res)) 
Producción

The original dictionary is : {'Gfg': 6, 'is': 7, 'best': 9, 'for': 8, 'geeks': 11}
The extracted dictionary : {'best': 9, 'for': 8, 'geeks': 11}

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 *