{ "cells": [ { "cell_type": "markdown", "id": "815ff7f8", "metadata": {}, "source": [ "Задача 1. Сумма оплаченных заказов\n", "Дан список заказов:\n", "\n", "orders= [\n", " {\"order_id\":1,\"amount\":1200,\"status\":\"paid\"},\n", " {\"order_id\":2,\"amount\":500,\"status\":\"new\"},\n", " {\"order_id\":3,\"amount\":800,\"status\":\"paid\"},\n", " {\"order_id\":4,\"amount\":300,\"status\":\"cancelled\"}\n", "]\n", "Нужно:\n", " пройтись по заказам;\n", " взять только те, у которых статус \"paid\";\n", " посчитать их общую сумму;\n", " вывести результат." ] }, { "cell_type": "code", "execution_count": 31, "id": "5dac0cd0", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2\n" ] } ], "source": [ "orders= [\n", " {\"order_id\":1,\"amount\":1200,\"status\":\"paid\"},\n", " {\"order_id\":2,\"amount\":500,\"status\":\"new\"},\n", " {\"order_id\":3,\"amount\":800,\"status\":\"paid\"},\n", " {\"order_id\":4,\"amount\":300,\"status\":\"cancelled\"}\n", "]\n", "count = 0\n", "for order in orders:\n", " if order[\"status\"] == \"paid\":\n", " count += 1\n", "print(count)\n" ] }, { "cell_type": "markdown", "id": "5909293c", "metadata": {}, "source": [ "Задача 2. Поиск самого дорогого заказа\n", "Дан список заказов:\n", "\n", "orders= [\n", " {\"order_id\":1,\"amount\":1200},\n", " {\"order_id\":2,\"amount\":500},\n", " {\"order_id\":3,\"amount\":1800},\n", " {\"order_id\":4,\"amount\":900}\n", "]\n", "Нужно:\n", " найти заказ с максимальной суммой amount;\n", " вывести весь словарь этого заказа." ] }, { "cell_type": "code", "execution_count": 37, "id": "1cd30f37", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{'order_id': 3, 'amount': 1800}\n" ] } ], "source": [ "orders = [\n", " {\"order_id\":1,\"amount\":1200},\n", " {\"order_id\":2,\"amount\":500},\n", " {\"order_id\":3,\"amount\":1800},\n", " {\"order_id\":4,\"amount\":900}\n", "]\n", "max_order = orders[0]\n", "for order in orders:\n", " if order[\"amount\"] > max_order[\"amount\"]:\n", " max_order = order\n", "pprint(max_order, sort_dicts=False)" ] }, { "cell_type": "markdown", "id": "c81986e6", "metadata": {}, "source": [ "Задача 3. Группировка заказов по пользователю\n", "Дан список заказов:\n", "\n", "orders= [\n", " {\"order_id\":1,\"user_id\":101,\"amount\":1200},\n", " {\"order_id\":2,\"user_id\":102,\"amount\":500},\n", " {\"order_id\":3,\"user_id\":101,\"amount\":800},\n", " {\"order_id\":4,\"user_id\":103,\"amount\":700}\n", "]\n", "Нужно:\n", " сгруппировать заказы по user_id;\n", " в результате получить словарь, где:\n", " ключ — это user_id,\n", " значение — список заказов этого пользователя." ] }, { "cell_type": "code", "execution_count": 46, "id": "cd85b1b0", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{101: [{'order_id': 1, 'user_id': 101, 'amount': 1200},\n", " {'order_id': 3, 'user_id': 101, 'amount': 800}],\n", " 102: [{'order_id': 2, 'user_id': 102, 'amount': 500}],\n", " 103: [{'order_id': 4, 'user_id': 103, 'amount': 700}]}\n" ] } ], "source": [ "orders= [\n", " {\"order_id\":1,\"user_id\":101,\"amount\":1200},\n", " {\"order_id\":2,\"user_id\":102,\"amount\":500},\n", " {\"order_id\":3,\"user_id\":101,\"amount\":800},\n", " {\"order_id\":4,\"user_id\":103,\"amount\":700}\n", "]\n", "grouped = {}\n", "for order in orders:\n", " user_id = order[\"user_id\"]\n", " if user_id not in grouped:\n", " grouped[user_id] = []\n", " grouped[user_id].append(order)\n", "pprint(grouped, sort_dicts=False)" ] }, { "cell_type": "markdown", "id": "a0669a7b", "metadata": {}, "source": [ "Задача 4. Подсчет выручки по пользователям\n", "Дан список заказов:\n", "\n", "orders= [\n", " {\"order_id\":1,\"user_id\":101,\"amount\":1200},\n", " {\"order_id\":2,\"user_id\":102,\"amount\":500},\n", " {\"order_id\":3,\"user_id\":101,\"amount\":800},\n", " {\"order_id\":4,\"user_id\":103,\"amount\":700},\n", " {\"order_id\":5,\"user_id\":102,\"amount\":300}\n", "]\n", "Нужно:\n", " пройтись по заказам;\n", " посчитать общую сумму amount по каждому user_id;\n", " сохранить результат в словарь." ] }, { "cell_type": "code", "execution_count": 54, "id": "3f0a2d12", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{101: 2000, 102: 800, 103: 700}\n" ] } ], "source": [ "orders= [\n", " {\"order_id\":1,\"user_id\":101,\"amount\":1200},\n", " {\"order_id\":2,\"user_id\":102,\"amount\":500},\n", " {\"order_id\":3,\"user_id\":101,\"amount\":800},\n", " {\"order_id\":4,\"user_id\":103,\"amount\":700},\n", " {\"order_id\":5,\"user_id\":102,\"amount\":300}\n", "]\n", "user_total = {}\n", "for order in orders:\n", " user_id = order[\"user_id\"]\n", " if user_id not in user_total:\n", " user_total[user_id] = 0\n", " user_total[user_id] += order[\"amount\"]\n", "print(user_total)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.13.7" } }, "nbformat": 4, "nbformat_minor": 5 }