Удаление элементов в списке словарей
Всем привет, подскажите как можно удалить пару значений в списке словарей? Знаю про метод del dict_name[key] но он удаляет ключи со значением. Есть ли аналог чтобы удалить значение? Есть одно решение, поменять местами ключи со значениями и удалить их но думаю это не правильно.
list_1 = [{'Name': 280, 'less': 'PIP'},
{'Name': 6, 'less': 'Ticket in process'},
{'Name': 7, 'dess': 'Defected'},
{'Name': 8, 'dess': 'Need confirmation'},
{'Name': 9, 'dess': 'Need remove'}]
Удаляем например ключ со значением 6 и 8 (может быть и больше) ....
result = [{'Name': 280, 'less': 'PIP'},
{'Name': 7, 'dess': 'Defected'},
{'Name': 9, 'dess': 'Need remove'}]
Ответы (1 шт):
Автор решения: n1tr0xs
→ Ссылка
Лучше будет создать новый список и добавлять элементы, которые подходят, чем изменять существующий. Есть такие предложения:
- Используем цикл
for:
exc = [6, 8] # те, что вам не нужны
res = []
for el in list_1:
if el['Name'] not in exc:
res.append(el)
- Используем функцию
filter:
exc = [6, 8]
res = list(filter(lambda x: x['Name'] not in exc, list_1))
- Используем генератор списка:
exc = [6, 8]
res = [x for x in list_1 if x['Name'] not in exc]