Вложенные структуры · 19 из 22
Разгадка: час, которого не было
Дело о лишнем часе. Улики собраны. Стас сложил в одну выгрузку всё, что сервер записал за ночь у кофейни, регистратуры, школы и у себя самого, — вложенное как пришло: словари в списках, списки в словарях, у каждой службы по-своему. Время везде записано с часовым поясом. Осталось сказать, что случилось.
Что сделать
Найдите в выгрузке последнее время с поясом +02:00, первое — с +01:00 и службы, у которых встречаются оба.
Что приходит
uliki— словарь «служба → её данные»; данные — словари, списки и строки любой вложенности
Что вернуть
Кортеж (последнее с +02:00, первое с +01:00, службы): время — строкой, как в выгрузке, или None; службы — списком по алфавиту.
Допишите функцию razgadka в редакторе справа.
Результат верните через return — то, что
напечатано, на проверку не влияет.
razgadka({"shkola": {"ocenki": [{"uchenik": "Белов", "vremya": "2026-10-25T02:40:00+02:00"}, {"uchenik": "Белов", "vremya": "2026-10-25T02:01:00+01:00"}]}, "kassa": {"cheki": [{"nomer": 1041, "vremya": "2026-10-25T02:58:00+02:00"}, {"nomer": 1041, "vremya": "2026-10-25T02:03:00+01:00"}]}})
('2026-10-25T02:58:00+02:00', '2026-10-25T02:01:00+01:00', ['kassa', 'shkola'])
Время — строка ровно из 25 знаков вида 2026-10-25T02:10:00+02:00: одиннадцатый знак — T, последние шесть — смещение. Остальные строки — фамилии, названия, даты без времени — временем не считаются. Ключи словарей — не данные, смотрятся только значения.
Данные бывают любой вложенности: словари, списки и кортежи в любом сочетании. Обойти надо всё.
«Последнее» и «первое» — по моменту. У времён с одинаковым смещением момент и строка сравниваются одинаково, так что max и min по строкам дают верный ответ. Нет ни одного времени с нужным смещением — на его месте None.
Служба — ключ верхнего уровня uliki; она попадает в список, если где угодно в её данных есть время и с +02:00, и с +01:00. Другие смещения в ответе не участвуют.
Обсуждение
Вопросов пока нет.
Войдите, чтобы спросить.