A veces, mientras trabajamos con diccionarios de Python, podemos tener un problema en el que necesitamos filtrar ciertos valores en función de ciertas condiciones en un tipo particular, por ejemplo, todos los valores menores que K. Esta tarea se vuelve compleja cuando los valores del diccionario pueden ser heterogéneos. Este tipo de problema puede tener aplicaciones en muchos dominios. Analicemos ciertas formas en que se puede realizar esta tarea.
Entrada : test_dict = {‘Gfg’: 10, ‘for’: ‘geeks’}
Salida : {‘Gfg’: 10, ‘for’: ‘geeks’}Entrada : test_dict = {‘Gfg’: ‘geeks’}
Salida : {‘Gfg’: ‘geeks’}
Método n.º 1: Usar type() + comprensión de diccionario
La combinación de las funciones anteriores se puede usar para realizar esta tarea. En esto, verificamos el tipo integral usando type() y filtramos los datos en la comprensión del diccionario.
Python3
# Python3 code to demonstrate working of # Filter dictionary values in heterogeneous dictionary # Using type() + dictionary comprehension # initializing dictionary test_dict = {'Gfg' : 4, 'is' : 2, 'best' : 3, 'for' : 'geeks'} # printing original dictionary print("The original dictionary : " + str(test_dict)) # initializing K K = 3 # Filter dictionary values in heterogeneous dictionary # Using type() + dictionary comprehension res = {key : val for key, val in test_dict.items() if type(val) != int or val > K} # printing result print("Values greater than K : " + str(res))
The original dictionary : {'Gfg': 4, 'for': 'geeks', 'is': 2, 'best': 3} Values greater than K : {'Gfg': 4, 'for': 'geeks'}
Método #2: Usar isinstance() + comprensión de diccionario
La combinación de las funciones anteriores también se puede usar para resolver este problema. En esto, realizamos esta tarea de manera similar a la anterior, pero la diferencia es que la prueba de tipo la realiza isinstance() en lugar de type().
Python3
# Python3 code to demonstrate working of # Filter dictionary values in heterogeneous dictionary # Using isinstance() + dictionary comprehension # initializing dictionary test_dict = {'Gfg' : 4, 'is' : 2, 'best' : 3, 'for' : 'geeks'} # printing original dictionary print("The original dictionary : " + str(test_dict)) # initializing K K = 3 # Filter dictionary values in heterogeneous dictionary # Using isinstance() + dictionary comprehension res = {key : val for key, val in test_dict.items() if not isinstance(val, int) or val > K} # printing result print("Values greater than K : " + str(res))
The original dictionary : {'Gfg': 4, 'for': 'geeks', 'is': 2, 'best': 3} Values greater than K : {'Gfg': 4, 'for': 'geeks'}
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