A veces, mientras trabajamos con diccionarios de Python, podemos tener un problema en el que necesitamos eliminar claves cuyos valores tienen una substring como argumento que pasamos. Este problema puede darse en casos de desarrollo web y programación día a día. Analicemos ciertas formas en que se puede realizar esta tarea.
Entrada :
test_dict = {1: ‘Gfg es mejor para geeks’}
sub_list = [‘love’, ‘good’] (Strings para verificar valores)
Salida : {1: ‘Gfg es mejor para geeks’}
Entrada :
test_dict = {1: ‘Gfg es amor’, 2: ‘Gfg es bueno’}
sub_list = [‘love’, ‘good’] (Strings para verificar valores)
Salida : {}
Método n.º 1: usar any() + loop
La combinación de las funcionalidades anteriores se puede usar para resolver este problema. En esto, extraemos todos los elementos del diccionario que no tienen los valores deseados, la filtración se realiza usando any() y la expresión del generador.
Python3
# Python3 code to demonstrate working of # Remove keys with substring values # Using any() + generator expression # initializing dictionary test_dict = {1 : 'Gfg is best for geeks', 2 : 'Gfg is good', 3 : 'I love Gfg'} # printing original dictionary print("The original dictionary : " + str(test_dict)) # initializing substrings sub_list = ['love', 'good'] # Remove keys with substring values # Using any() + generator expression res = dict() for key, val in test_dict.items(): if not any(ele in val for ele in sub_list): res[key] = val # printing result print("Filtered Dictionary : " + str(res))
El diccionario original: {1: ‘Gfg es mejor para geeks’, 2: ‘Gfg es bueno’, 3: ‘Me encanta Gfg’}
Diccionario filtrado: {1: ‘Gfg es mejor para geeks’}
Método n.º 2: Uso de la comprensión del diccionario + any()
La combinación de los métodos anteriores proporciona la abreviatura para ejecutar esta tarea. En esto, realizamos esta tarea de manera similar al método anterior, pero en un formato de línea utilizando la comprensión.
Python3
# Python3 code to demonstrate working of # Remove keys with substring values # Using dictionary comprehension + any() # initializing dictionary test_dict = {1 : 'Gfg is best for geeks', 2 : 'Gfg is good', 3 : 'I love Gfg'} # printing original dictionary print("The original dictionary : " + str(test_dict)) # initializing substrings sub_list = ['love', 'good'] # Remove keys with substring values # Using dictionary comprehension + any() res = {key : val for key, val in test_dict.items() if not any(ele in val for ele in sub_list)} # printing result print("Filtered Dictionary : " + str(res))
The original dictionary : {1: 'Gfg is best for geeks', 2: 'Gfg is good', 3: 'I love Gfg'} Filtered Dictionary : {1: 'Gfg is best 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