Текст задания из LMS / источника
Выбор заказов
Отберите заказы дороже 500, создайте список названий продуктов в алфавитном порядке и верните итоговый список.
orders = [{"product": "Laptop", "price": 1200}, {"product": "Mouse", "price": 50}, {"product": "Keyboard", "price": 100}, {"product": "Monitor", "price": 300}, {"product": "Chair", "price": 800}, {"product": "Desk", "price": 400}]Пример вывода: ['Chair', 'Laptop']
Статистика продаж
Вычислите выручку для каждого товара и верните словарь, отсортированный по убыванию выручки.
sales = [("Laptop", 5, 1200), ("Mouse", 50, 20), ("Keyboard", 30, 50), ("Monitor", 10, 300), ("Chair", 20, 800)]Пример вывода: {'Chair': 16000, 'Laptop': 6000, 'Monitor': 3000, 'Keyboard': 1500, 'Mouse': 1000}
Пошаговое решение
Выбор заказов
def select_expensive_orders(orders):
selected = filter(lambda order: order["price"] > 500, orders)
names = map(lambda order: order["product"], selected)
return sorted(names)
orders = [
{"product": "Laptop", "price": 1200},
{"product": "Mouse", "price": 50},
{"product": "Chair", "price": 800},
]
print(select_expensive_orders(orders))filter выбирает дорогие заказы, map достаёт product, sorted сортирует названия.
Статистика продаж
def sales_revenue(sales):
revenue = {product: quantity * price for product, quantity, price in sales}
sorted_items = sorted(revenue.items(), key=lambda item: item[1], reverse=True)
return dict(sorted_items)
sales = [("Laptop", 5, 1200), ("Mouse", 50, 20), ("Keyboard", 30, 50), ("Monitor", 10, 300), ("Chair", 20, 800)]
print(sales_revenue(sales))Сначала считаем выручку, затем сортируем пары по значению в обратном порядке.
Проверка в VS Code
- Создайте файл main.py и перенесите решение.
- Запустите python main.py в терминале.
- Сравните вывод с примером из задания.
- Проверьте крайние случаи: пустые коллекции, повторяющиеся значения и некорректные параметры.