Другая опция, но другая логика.
Работает на клавишах второго уровня, изменяется только value4
непосредственно под value2
:
dct = {"value1": {}, "value2": {"value3": {}, "value4": {}, "value5": {"value4": {}}}}
keyz = ["value2", "value4"]
print(dct)
def append_star(dct, keyz):
dct[keyz[0]][keyz[1] + '*'] = dct[keyz[0]][keyz[1]]
del dct[keyz[0]][keyz[1]]
append_star(dct, keyz)
Или в этом случае value2
непосредственно под value2
, а не value2
на более высоком уровне:
dct = {"value1": {}, "value2": {"value2": {}, "value4": {}, "value5": {"value4": {}}}}
keyz = ["value2", "value2"]
{'value1': {}, 'value2': {'value4': {}, 'value5': {'value4': {}}, 'value2*': {}}}