Python: elimina claves con valores de substring

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

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

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

Deja una respuesta

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