Как удалить 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]
С проверкой, что это действительно словарь, для неоднородного списка.