Код 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
  1. Разберите спецификацию по | и проверьте каждый вариант.
  2. isinstance(True, int) истинно.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.