Tal vez sus soluciones funcionen con ints, pero no me funcionan con dictionarys.
Por un lado, remove () no me ha funcionado. Pero tal vez funciona con tipos básicos. Supongo que el siguiente código también es la forma de eliminar elementos de la lista de objetos.
Por otro lado, 'del' tampoco ha funcionado correctamente. En mi caso, usando python 3.6: cuando trato de eliminar un elemento de una lista en un bucle 'for' con el comando 'del', python cambia el índice en el proceso y bucle se detiene prematuramente antes de tiempo. Solo funciona si elimina elemento por elemento en orden inverso . De esta manera, no cambia el índice de matriz de elementos pendientes cuando lo está revisando
Entonces, estoy acostumbrado:
c = len(list)-1
for element in (reversed(list)):
if condition(element):
del list[c]
c -= 1
print(list)
donde 'lista' es como [{'clave1': valor1 '}, {' clave2 ': valor2}, {' clave3 ': valor3}, ...]
También puedes hacer más pitónico usando enumerate:
for i, element in enumerate(reversed(list)):
if condition(element):
del list[(i+1)*-1]
print(list)