Решите задачу интернет-торговли в Python. Несколько покупателей в течение года совершали покупки в интернет-магазине

  • 37
Решите задачу интернет-торговли в Python. Несколько покупателей в течение года совершали покупки в интернет-магазине. При каждой покупке были записаны имя покупателя (в строковом формате) и потраченная сумма (в виде десятичного числа). Напишите функцию, которая вычисляет для каждого покупателя и возвращает в виде словаря для всех покупателей (в формате имя:значение) один из следующих параметров: 2. средняя сумма покупки.
Солнечный_Бриз
56
Конечно! Для решения этой задачи интернет-торговли вам понадобится написать функцию на языке Python. Давайте приступим к решению.

python
def calculate_average_purchase(transactions):
# Создаем пустой словарь для хранения сумм каждого покупателя
customer_totals = {}

# Создаем пустой словарь для хранения количества покупок каждого покупателя
customer_counts = {}

# Проходимся по каждой транзакции
for transaction in transactions:
# Получаем имя покупателя и сумму покупки
customer = transaction[0]
purchase_amount = transaction[1]

# Добавляем сумму покупки к сумме уже имеющихся покупок данного покупателя
if customer in customer_totals:
customer_totals[customer] += purchase_amount
else:
customer_totals[customer] = purchase_amount

# Увеличиваем количество покупок данного покупателя на 1
if customer in customer_counts:
customer_counts[customer] += 1
else:
customer_counts[customer] = 1

# Создаем пустой словарь для хранения средних сумм покупок
average_purchase = {}

# Вычисляем среднюю сумму покупки для каждого покупателя
for customer in customer_totals:
total_purchase = customer_totals[customer]
count = customer_counts[customer]
average_purchase[customer] = total_purchase / count

# Возвращаем словарь со средними суммами покупок для каждого покупателя
return average_purchase


Давайте рассмотрим эту функцию подробнее:

1. Мы создаем два пустых словаря: `customer_totals` для хранения сумм каждого покупателя и `customer_counts` для хранения количества покупок каждого покупателя.
2. Затем мы проходим по каждой транзакции из входного списка `transactions`. Для каждой транзакции мы получаем имя покупателя и сумму покупки.
3. Далее мы добавляем сумму покупки к сумме уже имеющихся покупок данного покупателя и увеличиваем количество покупок данного покупателя на 1.
4. Затем мы создаем пустой словарь `average_purchase` для хранения средних сумм покупок.
5. Мы проходимся по каждому покупателю в словаре `customer_totals` и вычисляем среднюю сумму покупки, используя формулу `total_purchase / count`.
6. Наконец, мы возвращаем словарь `average_purchase` со средними суммами покупок для каждого покупателя.

Теперь, когда у вас есть эта функция, вы можете передать список транзакций в виде параметра и получить словарь со средними суммами покупок для каждого покупателя. Вот пример использования:

python
transactions = [("Иванов", 100), ("Петров", 50), ("Иванов", 200), ("Сидоров", 150), ("Петров", 300)]
result = calculate_average_purchase(transactions)
print(result)


В результате выполнения этого кода вы получите следующий вывод:


{"Иванов": 150.0, "Петров": 175.0, "Сидоров": 150.0}


Это означает, что средняя сумма покупки для покупателя "Иванов" составляет 150.0, для покупателя "Петров" - 175.0, а для покупателя "Сидоров" - 150.0.