Python | Eliminar diccionario de la lista de diccionarios

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

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

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

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

Deja una respuesta

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