Может быть, ваши решения работают с целочисленными, но у меня не работает со словарями.
С одной стороны, удаление () не работает для меня. Но, возможно, это работает с основными типами. Я предполагаю, что приведенный ниже код также является способом удаления элементов из списка объектов.
С другой стороны, «del» тоже не работает должным образом. В моем случае, используя python 3.6: когда я пытаюсь удалить элемент из списка с помощью команды «for» с помощью команды «del», python изменяет индекс в процессе, и bucle останавливается раньше времени. Это работает, только если Вы удаляете элемент за элементом в обратном порядке. Таким образом, вы не изменяете индекс массива ожидающих элементов, когда проходите его
Затем я использовал:
c = len(list)-1
for element in (reversed(list)):
if condition(element):
del list[c]
c -= 1
print(list)
где 'list' похож на [{'key1': value1 '}, {' key2 ': value2}, {' key3 ': value3}, ...]
Также Вы можете сделать больше pythonic используя перечисление:
for i, element in enumerate(reversed(list)):
if condition(element):
del list[(i+1)*-1]
print(list)