Задача по пицце подскажите в каком направлении двигаться?
В базе данных интернет-магазина PizzaTime хранятся данные о том, кто, что и сколько заказывал у них в определённый период. Вам нужно структурировать эту информацию, а также понять, сколько всего пицц купил каждый заказчик.
На вход в программу подаётся N заказов. Каждый заказ представляет собой строку вида «Покупатель — название пиццы — количество заказанных пицц». Реализуйте код, который выводит список покупателей и их заказов по алфавиту. Учитывайте, что один человек может заказать одно и то же несколько раз.
Ответы (1 шт):
Смотри, я думаю что ты новичок, поэтому распишу всё подробно в шагах:
- Считай число
N, чтобы мы могли пройтись по коду столько раз, сколько у нас покупателей - Считай сам ввод. Так как он у тебя в формате "покупатель - пицца - количество", то тут всё довольно просто - подсказка, используй метод
split()и передай в него подстроку, по которой нужно разделить главную строку - Создай вне цикла словарь, назовём его
database, в нём будут хранится данные о пользователях и их заказах - С каждой новой итерацией цикла, мы будем считывать ввод и проверять, есть ли уже такой покупатель в нашей базе. В случае если он есть, то мы далее проверяем, заказывал ли он уже такую пиццу. Здесь могут возникнуть сложности с хранением данных. Можно их хранить как строки
"<пицца>: <количество>", но для новичка таким способом будет сложно понять общее количество заказанных пицц, если он опять закажет такую же пиццу, поэтому для начала можно просто добавить строку названия пиццы<количество>раз. Т.е:
Если пользователь введёт
Andrew - pepperoni - 3
То список базы данных мы пополним на:
["pepperoni", "pepperoni", "pepperoni"]
Потом на стадии вывода мы можем просто посчитать итоговое количество строк "pepperoni" в списке, это и будет являтся нашим кол-вом заказанных пицц.
- Для извлечения данных из словаря можно использовать метод
items(), который возвращает список пар-кортежей, состоящих из ключа и значения. В нашем случае ключ - имя покупателя и значение - список строк заказанных пицц. Сортировать их можно с помощьюsorted(), передав в параметрkeyфункцию для сортировки.
Если вывод всё таки нужен типа "<пицца> : <количество>", то ты можешь воспользоваться этой статьей.