Talvez suas soluções funcionem com ints, mas não funciona para mim com dicionários.
Por um lado, remove () não funcionou para mim. Mas talvez funcione com tipos básicos. Eu acho que o código abaixo também é a maneira de remover itens da lista de objetos.
Por outro lado, 'del' também não funcionou corretamente. No meu caso, usando python 3.6: quando tento excluir um elemento de uma lista em um comando 'for' bucle com 'del', o python altera o índice no processo e o bucle para prematuramente antes do tempo. Só funciona se você excluir elemento por elemento em ordem inversa . Dessa forma, você não altera o índice da matriz de elementos pendentes quando está passando por ele
Então, eu sou usado:
c = len(list)-1
for element in (reversed(list)):
if condition(element):
del list[c]
c -= 1
print(list)
onde 'list' é como [{'key1': value1 '}, {' key2 ': value2}, {' key3 ': value3}, ...]
Além disso, você pode fazer mais python usando enumerar:
for i, element in enumerate(reversed(list)):
if condition(element):
del list[(i+1)*-1]
print(list)