Как удалить словарь из вложенного словаря
Пример вложенного словаря:
x={'a': {'b': [{'mf': 1}, {'mf': 2}, {'mf': 3}, {'mf': 1}]}}
Я хочу удалить словарь, содержащий "mf":1
в этом случае следует удалить первый и последний
пожалуйста помоги.
2 ответа
x={'a': {'b': [{'mf': 1}, {'mf': 2}, {'mf': 3}, {'mf': 1}]}}
print(x)
for i in x['a']['b']:
for key,value in i.items():
if key=="mf" and value==1:
x['a']['b'].remove(i)
print(x)
Выход -
Перед - {'a': {'b': [{'mf': 1}, {'mf': 2}, {'mf': 3}, {'mf': 1}]}}
После - {'a': {'b': [{'mf': 2}, {'mf': 3}]}}
Итак, вы пытаетесь получить этот новый словарь:
x={'a': {'b': [{'mf': 2}, {'mf': 3}, {'mf': 1}}}
Затем вам нужно сначала проанализировать массив и получить позицию словаря, который вы хотите удалить, например
индекс = 0
a ['b']. pop (индекс)
Вы также можете попробовать использовать remove в массиве, но тогда вам нужно знать, какой элемент удалить
a['b'].remove('mf')
Также pop работает так же для словаря, просто укажите ключ вместо индекса. https://www.w3schools.com/python/python_dictionaries.asphttps://www.w3schools.com/python/gloss_python_array_remove.asp