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