Що тут не працює? в мене видаляє на всіх рівнях
# У глибинах самих глибин.
# Напишіть програму, яка створює словник з інформацією про людину (наприклад, ім'я, вік, адреса, і контактна інформація).
# Програма повинна:
# Змінити значення верхнього рівня, вкладеного словника і більш глибокого рівня вкладеності.
# Додати новий елемент у вкладений словник.
# Видалити елемент із вкладеного словника і верхнього рівня.
# Напишіть тут ваш код
def prin_dict(my_dict_: dict, level: int = 0):
for key, value in list(my_dict_.items()):
if isinstance(value, dict):
print(f"{"-" * level}{key}: ")
prin_dict(value, level + 1)
else:
print(f"{"-" * level}{key}: {value}")
items_dict: dict = {
"ім'я": 'Ann',
'вік': 60,
'адреса': {
'місто': 'Миколаїв',
'вулиця': 'Транспортний'
},
'контактна інформація': {
'моб': {
'home': '095744',
'work': '122233'
},
'tel': '111222'
},
}
def del_dict_item(my_dict: dict, item_del: str = None, level: int = 0):
for key, value in list(my_dict.items()):
if isinstance(value, dict):
print(f"{' ' * level}{key}:")
del_dict_item(value, item_del, level + 1)
else:
print(f"{' ' * level}{key}:{value}")
if key == item_del:
del my_dict[item_del]
def add_dict_item(my_dict: dict, new_one_item: dict, *items: tuple):
# new_items_dict: dict = {}
items_list_key: tuple = tuple([*items])
for key_up, value_up in list(my_dict.items()):
if isinstance(value_up, dict):
if key_up in items_list_key:
for k, val in new_one_item.items():
value_up[k] = val
else:
add_dict_item(value_up, new_one_item, *items)
elif key_up in items_list_key:
for k, val in new_one_item.items():
my_dict[k] = val
def upd_dict_item(my_dict_: dict, new_one_value: str, old_one_item: str):
for key, value in list(my_dict_.items()):
if isinstance(value, dict):
upd_dict_item(value, new_one_value, old_one_item)
else:
if old_one_item == key:
my_dict_[old_one_item] = new_one_value
del_dict_item(items_dict, 'вік')
add_dict_item(items_dict, {'fax': '0123456'}, ("контактна інформація"))
upd_dict_item(items_dict, 'Сергій', ("ім'я"))
prin_dict(items_dict)