A veces, mientras trabajamos con datos, podemos tener un problema en el que necesitamos verificar la presencia del elemento de la lista como una clave particular en la lista de registros. Este tipo de problema puede ocurrir en dominios en los que se involucran datos, como el desarrollo web y el aprendizaje automático. Discutamos ciertas formas en las que esta tarea puede ser resuelta.
Entrada : test_list = [{‘Precio’: 20, ‘Color’: ‘Naranja’}, {‘Precio’: 25, ‘Color’: ‘Amarillo’}]
Salida : [Verdadero, Falso, Verdadero, Falso]Entrada : test_list = [{‘Color’: ‘Rosa’, ‘Precio’: 50}]
Salida : [Falso, Falso, Falso, Falso]
Método n.º 1: Uso del bucle
Esta es una forma bruta de resolver este problema. En esto, iteramos todos los diccionarios para cada valor de la lista y lo comparamos con la clave deseada y devolvemos True para los registros que la poseen.
# Python3 code to demonstrate working of # Check List elements from Dictionary List # Using loop # helpr_func def check_ele(ele, test_list): for sub in test_list: for item in sub.values(): if ele == item: return True return False # initializing list test_list = [{'Name' : 'Apple', 'Price' : 18, 'Color' : 'Red'}, {'Name' : 'Mango', 'Price' : 20, 'Color' : 'Yellow'}, {'Name' : 'Orange', 'Price' : 24, 'Color' : 'Orange'}, {'Name' : 'Plum', 'Price' : 28, 'Color' : 'Red'}] # printing original list print("The original list is : " + str(test_list)) # initializing Values list val_list = ['Yellow', 'Red', 'Orange', 'Green'] # Check List elements from Dictionary List # Using loop res = [] for ele in val_list: res.append(check_ele(ele, test_list)) # printing result print("The Association list in Order : " + str(res))
La lista original es: [{‘Nombre’: ‘Manzana’, ‘Color’: ‘Rojo’, ‘Precio’: 18}, {‘Nombre’: ‘Mango’, ‘Color’: ‘Amarillo’, ‘Precio’ : 20}, {‘Nombre’: ‘Naranja’, ‘Color’: ‘Naranja’, ‘Precio’: 24}, {‘Nombre’: ‘Ciruela’, ‘Color’: ‘Rojo’, ‘Precio’: 28 }]
La lista de asociaciones en orden: [Verdadero, Verdadero, Verdadero, Falso]
Método n.° 2: usar la any()
expresión del generador +
El uso de any() con integración con la expresión del generador puede resolver este problema. En esto, reducimos las líneas de código reduciendo el bucle interno, probando usando any().
# Python3 code to demonstrate working of # Check List elements from Dictionary List # Using any() + generator expression # initializing list test_list = [{'Name' : 'Apple', 'Price' : 18, 'Color' : 'Red'}, {'Name' : 'Mango', 'Price' : 20, 'Color' : 'Yellow'}, {'Name' : 'Orange', 'Price' : 24, 'Color' : 'Orange'}, {'Name' : 'Plum', 'Price' : 28, 'Color' : 'Red'}] # printing original list print("The original list is : " + str(test_list)) # initializing Values list val_list = ['Yellow', 'Red', 'Orange', 'Green'] # initializing Key key = 'Color' # Check List elements from Dictionary List # Using loop res = [any(clr == sub[key] for sub in test_list) for clr in val_list] # printing result print("The Association list in Order : " + str(res))
La lista original es: [{‘Nombre’: ‘Manzana’, ‘Color’: ‘Rojo’, ‘Precio’: 18}, {‘Nombre’: ‘Mango’, ‘Color’: ‘Amarillo’, ‘Precio’ : 20}, {‘Nombre’: ‘Naranja’, ‘Color’: ‘Naranja’, ‘Precio’: 24}, {‘Nombre’: ‘Ciruela’, ‘Color’: ‘Rojo’, ‘Precio’: 28 }]
La lista de asociaciones en orden: [Verdadero, Verdadero, Verdadero, Falso]
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