Как удалить Dict из листа не зная где он, но при этом я знаю его содержимое - python3

Возможно ли удалить элемент (dict) из листа при том, что я не знаю где иммено он, но я знаю его содержимое?


Ответы (2 шт):

Автор решения: Daniil Loban

В простейшем случае задача решается в одну строку методом remove который принимает образец для удаления. Если совпадений будет несколько - удалится первый найденный элемент:

lst = [{"y": 2}, {"x": 1}, 5]
del_item = {"x": 1}
lst.remove(del_item)
print(lst) # [{'y': 2}, 5]
→ Ссылка
Автор решения: Dmitry

Решение в лоб для понимания

d = [1, 2, 3, {"a":"valueA"}, "b", "a", {"B":"valueB"}] 
index_to_delete = None
value_to_delete = "valueA"
for count, i in enumerate(d):
    if isinstance(i, dict) and value_to_delete in i.values():
        index_to_delete = count
        break

if index_to_delete: del d[index_to_delete]

С проверкой, что это действительно словарь, для неоднородного списка.

→ Ссылка