Да, можно.
Накидал примерный код:
delete_sequence = [48, 56, 32, 10, 8, 1][:-1]
# Проходим по элементам и удаляем необходимый
for element in delete_sequence:
tree_for_deletion = tree_for_deletion[element]
del tree_for_deletion['value']
# Снова проходим по элементам и проверяем остались ли пустые значения по ключу, если да, то удаляем и завершаем цикл
tree_for_deletion = tree
for element in delete_sequence:
if not tree_for_deletion[element]:
del tree_for_deletion[element]
break
tree_for_deletion = tree_for_deletion[element]
print(tree)
Вывод:
{48: {56: {32: {10: {1: {'value': -12}}}, 10: {32: {8: {1: {'value': -18}}}, 1: {32: {'пропуск': {'value': 6}}, 8: {'value': -12}}}}}}
Скорее всего можно оптимизировать код.
Буду очень рад, если кто-нибудь поделиться как)