Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите написать код на python

taya blomfield Ученик (90), открыт 1 неделю назад
1 ответ
Chudo_Chudnoe Мастер (1584) 1 неделю назад
Тая, ещё раз привет)

Написал для тебя скрипт, который вроде как решит твою задачу:
 from statistics import mean 

def calculate_purchases(data, calculation_type):
# Инициализация результата в виде словаря
result = {}

def process_data(names, amounts):
for name, amount in zip(names, amounts):
if name not in result:
result[name] = []
result[name].append(amount)

if isinstance(data, dict):
for name, amounts in data.items():
result[name] = amounts
elif all(isinstance(i, tuple) for i in data):
for name, amount in data:
if name not in result:
result[name] = []
result[name].append(amount)
elif all(isinstance(i, list) for i in data) and len(data) == 2:
process_data(*data)

if calculation_type == 1: # число покупок
for name in result:
result[name] = len(result[name])
elif calculation_type == 2: # средняя сумма покупок
for name in result:
result[name] = mean(result[name])
elif calculation_type == 3: # максимальная сумма покупок
for name in result:
result[name] = max(result[name])
elif calculation_type == 4: # минимальная сумма покупок
for name in result:
result[name] = min(result[name])
elif calculation_type == 5: # общая сумма всех покупок
for name in result:
result[name] = sum(result[name])

return result

names = ['Алиса', 'Максим', 'Алиса', 'Рома', 'Максим']
amounts = [150.0, 200.0, 350.0, 400.0, 50.0]
calculation_type = 1 # Тут меняем тип расчёта, для примера выберем тип расчета - число покупок



purchases_dict = {
'Алиса': [150.0, 350.0],
'Максим': [200.0, 50.0],
'Рома': [400.0]
}
print(calculate_purchases(purchases_dict, calculation_type))
Вывод будет таким:

 {'Алиса': 2, 'Максим': 2, 'Рома': 1} 
С учётом того, что в строке расчёта calculation_type = 1 я выбрал число покупок. Это изменяемый параметр от 1 до 5, по комментариям понятно. Другая цифра = другой результат. Поиграйся с этим параметром и поймёшь смысл кода)
Похожие вопросы