2. Найти пользователей, которые совершили покупок на сумму больше 5000р. Вывести их имена в формате id пользователя | имя | фамилия | сумма покупок
Answer from AI
sobes.tech AI
python
Предположим, у нас есть список словарей с данными о покупках пользователей
purchases = [ {'user_id': 1, 'first_name': 'Иван', 'last_name': 'Иванов', 'amount': 3000}, {'user_id': 2, 'first_name': 'Пётр', 'last_name': 'Петров', 'amount': 7000}, {'user_id': 1, 'first_name': 'Иван', 'last_name': 'Иванов', 'amount': 2500}, {'user_id': 3, 'first_name': 'Сергей', 'last_name': 'Сергеев', 'amount': 4000}, {'user_id': 2, 'first_name': 'Пётр', 'last_name': 'Петров', 'amount': 1000}, ]
Суммируем покупки по пользователям
from collections import defaultdict
user_sums = defaultdict(lambda: {'first_name': '', 'last_name': '', 'total': 0})
for p in purchases: user_id = p['user_id'] user_sums[user_id]['first_name'] = p['first_name'] user_sums[user_id]['last_name'] = p['last_name'] user_sums[user_id]['total'] += p['amount']
Выводим пользователей с суммой покупок больше 5000
for user_id, data in user_sums.items(): if data['total'] > 5000: print(f"{user_id} | {data['first_name']} | {data['last_name']} | {data['total']}")
Результат:
2 | Пётр | Петров | 8000 1 | Иван | Иванов | 5500