Как удалить словарь из вложенного словаря

Пример вложенного словаря:

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

Другие вопросы по тегам