Рецепты · Шаг 3 из 4
Один список на всё
Блины и сырники — оба просят муку и яйца. В магазин нужен один список, где мука сложена из обоих рецептов. Но складывать можно только одинаковое: граммы с граммами. А «соль по вкусу» писать в список дважды незачем.
Что сделать
Сведите ингредиенты нескольких рецептов в один список покупок, сложив одинаковое.
Что приходит
recepty— список рецептов; рецепт — список словарей{"chto": …, "skolko": …, "edinica": …}, уже пересчитанный на порции
Что вернуть
Список словарей с теми же ключами: по одному на пару «название + единица», количества сложены, «по вкусу» — один раз; по алфавиту.
Допишите функцию spisok_pokupok в редакторе справа.
Результат верните через return — то, что
напечатано, на проверку не влияет.
В проекте
Программа зовёт spisok_pokupok один раз — на все пересчитанные рецепты сразу — и отдаёт результат шагу 4. Решите шаг — и одинаковое из разных рецептов сложится в одну строку.
Блины просят 300 г муки и 2 яйца, сырники — 60 г муки и 1 яйцо. В списке покупок — мука 360 г и яйца 3 шт: два словаря по алфавиту.
spisok_pokupok([[{"chto": "мука", "skolko": 300, "edinica": "г"}, {"chto": "яйца", "skolko": 2, "edinica": "шт"}], [{"chto": "яйца", "skolko": 1, "edinica": "шт"}, {"chto": "мука", "skolko": 60, "edinica": "г"}]])
[{'chto': 'мука', 'skolko': 360, 'edinica': 'г'}, {'chto': 'яйца', 'skolko': 3, 'edinica': 'шт'}]
Ингредиенты складываются, если у них одинаковые и chto, и edinica. Мука в граммах и мука в штуках — две разные покупки.
Ингредиенты «по вкусу» (skolko и edinica — None) с одним названием дают одну запись с None; с «солью 5 г» они не складываются — это отдельная запись.
Порядок: по названию — так, как сортирует строки sorted; при одинаковом названии — сначала «по вкусу», потом по единице: «г», «мл», «шт».
Возвращаются новые словари; переданные менять нельзя. Пусто — [].
Обсуждение
Вопросов пока нет.
Войдите, чтобы спросить.