⚠️ Типичные ошибки

⚡ Кратко: ошибки

Практикум 9 закрепляет set, dict, frozenset и вложенные структуры.

Для чисел, кратных 3 или 5, подходит set comprehension с условием.

Общие ключи двух словарей удобно искать через пересечение set(dict1) & set(dict2).

Список строк превращается в словарь длин через dict comprehension.

Подмножество словаря означает совпадение пар ключ-значение, а не только ключей.

Пустые значения можно удалить comprehension с проверкой truthiness.

frozenset нужен как ключ, когда набор элементов не должен зависеть от порядка.

В задачах с вводом отделяйте чистую логику от input(), чтобы проще тестировать.

Топ-3 ошибки: проверять подмножество словаря только по ключам; терять рецепты с одинаковым набором ингредиентов; использовать set как ключ вместо frozenset.

Подмножество только по ключам

Ключ может совпасть, а значение отличаться.

Как исправить

Проверяйте item in dict2.items().

Потерять дубли рецептов

Одинаковый набор ингредиентов может иметь несколько блюд.

Как исправить

Храните список рецептов под одним frozenset-ключом.

set как ключ

Обычный set изменяемый и нехешируемый.

Как исправить

Используйте frozenset.

Удалить 0 вместе с пустыми значениями

if value удаляет также 0 и False.

Как исправить

Если 0 допустим, проверяйте только None, '', [] явно.

Смешать input() и алгоритм

Такой код сложнее проверять.

Как исправить

Сначала напишите функцию на готовых данных, потом добавьте ввод.