La utilidad común para eliminar el diccionario correspondiente a una clave particular en una lista de diccionarios también es un problema cuya versión concisa siempre es útil. Esto tiene aplicación en el desarrollo web debido a la introducción de bases de datos No-SQL, que funcionan principalmente en pares clave-valor. Analicemos ciertas formas en que se puede realizar esta tarea.
Método n.º 1: uso del ciclo del +
En el método ingenuo de realizar esta tarea en particular, necesitamos usar del para eliminar la clave en particular si coincide con la clave que se requiere eliminar.
# Python3 code to demonstrate # to delete dictionary in list # using del + loop # initializing list of dictionaries test_list = [{"id" : 1, "data" : "HappY"}, {"id" : 2, "data" : "BirthDaY"}, {"id" : 3, "data" : "Rash"}] # printing original list print ("The original list is : " + str(test_list)) # using del + loop # to delete dictionary in list for i in range(len(test_list)): if test_list[i]['id'] == 2: del test_list[i] break # printing result print ("List after deletion of dictionary : " + str(test_list))
La lista original es: [{‘id’: 1, ‘data’: ‘Feliz’}, {‘id’: 2, ‘data’: ‘BirthDaY’}, {‘id’: 3, ‘data’: ‘ Rash’}]
Lista después de la eliminación del diccionario: [{‘id’: 1, ‘data’: ‘HappY’}, {‘id’: 3, ‘data’: ‘Rash’}]
Método #2: Uso de la comprensión de listas
Este método funciona construyendo la lista completamente nueva o sobrescribiendo la lista original con todos los diccionarios excepto el que tiene la clave que debe eliminarse.
# Python3 code to demonstrate # to delete dictionary in list # using list comprehension # initializing list of dictionaries test_list = [{"id" : 1, "data" : "HappY"}, {"id" : 2, "data" : "BirthDaY"}, {"id" : 3, "data" : "Rash"}] # printing original list print ("The original list is : " + str(test_list)) # using list comprehension # to delete dictionary in list res = [i for i in test_list if not (i['id'] == 2)] # printing result print ("List after deletion of dictionary : " + str(res))
La lista original es: [{‘id’: 1, ‘data’: ‘Feliz’}, {‘id’: 2, ‘data’: ‘BirthDaY’}, {‘id’: 3, ‘data’: ‘ Rash’}]
Lista después de la eliminación del diccionario: [{‘id’: 1, ‘data’: ‘HappY’}, {‘id’: 3, ‘data’: ‘Rash’}]
Método n.º 3:filter() + lambda
filter
la función de uso se puede usar para obtener el diccionario con la clave requerida y la función lambda se usa para iterar a los elementos de la lista uno por uno antes de que el filtro pueda realizar su tarea.
# Python3 code to demonstrate # to delete dictionary in list # using filter() + lambda # initializing list of dictionaries test_list = [{"id" : 1, "data" : "HappY"}, {"id" : 2, "data" : "BirthDaY"}, {"id" : 3, "data" : "Rash"}] # printing original list print ("The original list is : " + str(test_list)) # using filter() + lambda # to delete dictionary in list res = list(filter(lambda i: i['id'] != 2, test_list)) # printing result print ("List after deletion of dictionary : " + str(res))
La lista original es: [{‘id’: 1, ‘data’: ‘Feliz’}, {‘id’: 2, ‘data’: ‘BirthDaY’}, {‘id’: 3, ‘data’: ‘ Rash’}]
Lista después de la eliminación del diccionario: [{‘id’: 1, ‘data’: ‘HappY’}, {‘id’: 3, ‘data’: ‘Rash’}]
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