Python. Глубокое копирование, рекурсия, создание нового словаря с заменёнными значениями
Напишите программу, которая запрашивает у клиента, сколько будет сайтов, а затем запрашивает название продукта и после каждого запроса выводит на экран активные сайты.
Условия: структуру сайта нужно описать один раз.
123456789101112
site = {
'html': {
'head': {
'title': 'Куплю/продам телефон недорого'
},
'body': {
'h2': 'У нас самая низкая цена на iPhone',
'div': 'Купить',
'p': 'Продать'
}
}
} Но я написал пока-что это:
1234567891011121314151617181920212223242526272829303132333435
from copy import deepcopy
from json import dumps
site = {
'html': {
'head': {
'title': 'Куплю/продам телефон недорого'
},
'body': {
'h2': 'У нас самая низкая цена на iPhone',
'div': 'Купить',
'p': 'Продать'
}
}
}
def change_value(struct, **kwargs):
dictt = deepcopy(struct)
for key, value in kwargs.items():
#struct['html']['head']['title'] = struct['html']['head']['title'].replace('телефон', value)
#struct['html']['body']['h2'] = struct['html']['body']['h2'].replace('iPhone', value)
#return dumps(struct, indent=4, ensure_ascii=False)
if key in dictt:
dictt[key] = dictt[key].replace('iPhone', value)
print(dictt)
print(dictt[key])
for sub_struct in dictt.values():
if isinstance(sub_struct, dict):
return change_value(sub_struct, **kwargs)
return dictt
for _ in range(int(input('Сколько сайтов: '))):
name = input('Введите название продукта для нового сайта: ')
print(f'Сайт для {name}:')
print(change_value(site, title=name, h2=name))
#'site = ' + Вывод должен быть таким:
По дате
По рейтингу
В продолжение предыдущего вопроса..
https://otvet.mail.ru/question/230848548
Проблема то в чем? Не понятно как именованные параметры использовать? Это просто словарь, соответственно, и методы такие же..
Какая задача вообще была? Есть текст внятный?
Слово "телефон" меняем на другое в зависимости от тега?