Код Middle Типизация обновлено
Проверить словарь по схеме типов
Условие
Напишите check(schema, data): schema словарь «ключ -> имя типа» ("int", "str", "bool", "float", "list", "none"; можно несколько через |, например "int|none"). Ключ с суффиксом ? в схеме необязателен. Верните отсортированный список ошибок: "missing:<ключ>", "type:<ключ>" (значение не того типа; bool не считается int, а int считается допустимым float) и "extra:<ключ>" для лишних ключей в данных.
Примеры
check({"id":"int","name":"str"}, {"id":1,"name":"a"}) // []
check({"id":"int"}, {}) // ["missing:id"]
check({"id":"int"}, {"id":true}) // ["type:id"]
Как подойти
Подсказки: 2
- Разберите спецификацию по
|и проверьте каждый вариант. isinstance(True, int)истинно.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.