Dada una lista de diccionarios, extraiga todos los diccionarios que tengan una substring presente en una clave particular.
Entrada : [{“Gfg”: “4”, “mejor”: “1”}, {“Gfg”: “buen contenido de CS”, “mejor”: “10”}], K = “Gfg”, sub_str =
Salida «CS» : [{‘Gfg’: ‘buen contenido de CS’, ‘mejor’: ’10’}]
Explicación : «Gfg» tiene «CS» como valor de substring.Entrada : [{“Gfg”: “4”, “mejor”: “1”}, {“Gfg”: “buen contenido”, “mejor”: “10”}], K = “Gfg”, sub_str = “ CS”
Salida : []
Explicación : No hay diccionario con “CS” como substring para la tecla “Gfg”.
Método #1: Usar la comprensión de listas
Esta es una de las formas en que se puede realizar esta tarea. En esto, iteramos para todos los diccionarios y verificamos la presencia de la substring del valor de la clave usando el operador in.
Python3
# Python3 code to demonstrate working of # Dictionaries with Substring values # Using list comprehension # initializing lists test_list = [{"Gfg": "4", "best": "1"}, {"Gfg": "good for CS", "best": "8"}, {"Gfg": "good CS content", "best": "10"}] # printing original list print("The original list : " + str(test_list)) # initializing K key K = "Gfg" # initializing target value sub_str = "CS" # list comprehension to extract values with # substring values using in operator res = [val for val in test_list if sub_str in val[K]] # printing result print("Dictionaries with particular substring values : " + str(res))
Producción:
La lista original: [{‘Gfg’: ‘4’, ‘mejor’: ‘1’}, {‘Gfg’: ‘bueno para CS’, ‘mejor’: ‘8’}, {‘Gfg’: ‘bueno CS content’, ‘best’: ’10’}]
Diccionarios con valores de substring particulares: [{‘Gfg’: ‘good for CS’, ‘best’: ‘8’}, {‘Gfg’: ‘good CS content’ , ‘mejor’: ’10’}]
Método #2: Usar map() + en el operador
Esta es otra forma más en la que se puede realizar esta tarea. En esto, extraemos todos los valores con la substring requerida usando la función map() + lambda. El operador in se usa para verificar la substring dentro del valor de la clave.
Python3
# Python3 code to demonstrate working of # Dictionaries with Substring values # Using map() + in operator # initializing lists test_list = [{"Gfg": "4", "best": "1"}, {"Gfg": "good for CS", "best": "8"}, {"Gfg": "good CS content", "best": "10"}] # printing original list print("The original list : " + str(test_list)) # initializing K key K = "Gfg" # initializing target value val = "CS" # map() used to perform filtering res = list(map(lambda sub: val in sub[K], test_list)) res = [test_list[idx] for idx, ele in enumerate(res) if res[idx]] # printing result print("Dictionaries with particular substring values : " + str(res))
Producción:
La lista original: [{‘Gfg’: ‘4’, ‘mejor’: ‘1’}, {‘Gfg’: ‘bueno para CS’, ‘mejor’: ‘8’}, {‘Gfg’: ‘bueno CS content’, ‘best’: ’10’}]
Diccionarios con valores de substring particulares: [{‘Gfg’: ‘good for CS’, ‘best’: ‘8’}, {‘Gfg’: ‘good CS content’ , ‘mejor’: ’10’}]
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