Python
Решить проблемную задачу через Python
Написать программу, которая находит среднее арифметическое элементов списка, которые больше заданного числа.
Решается парой декларативных конструкций без нагромождения внушительно выглядящего, но пустого по сути кода. Да и числа лучше вводить с клавиатуры, чем хардкодить в программе.
Правда, если преподаватель не оценит использование готовой функции среднего арифметического, то можно посчитать раздельно сумму и количество и поделить одно на другое:
Пример. Вводим:
А если кому не нравятся лямбды, то так:
Если нужно, чтоб работало на вещественных числах, замени int на float во всей программе.
from statistics import mean
ns = map(int, input().split())
print(mean(filter(int(input()).__lt__, ns)))
Правда, если преподаватель не оценит использование готовой функции среднего арифметического, то можно посчитать раздельно сумму и количество и поделить одно на другое:
from functools import reduce
ns = map(int, input().split())
fs = filter(int(input()).__lt__, ns)
print(int.__truediv__(*reduce(lambda t, n: map(int.__add__, t, (n, 1)), fs, (next(fs), 1))))
Пример. Вводим:
4 7 6 5 8
6
Получаем: 7.5
(среднее арифметическое 7 и 8, т.к. только они больше 6)А если кому не нравятся лямбды, то так:
from functools import partial, reduce; from itertools import repeat
ns = map(int, input().split())
ts = zip(filter(int(input()).__lt__, ns), repeat(1))
print(int.__truediv__(*reduce(partial(map, int.__add__), ts, next(ts))))
Если нужно, чтоб работало на вещественных числах, замени int на float во всей программе.
def calculate_average_above(numbers, threshold):
count = 0
total = 0
for number in numbers:
if number > threshold:
count += 1
total += number
if count == 0:
return 0 # Если нет элементов больше заданного числа, возвращаем 0, чтобы избежать деления на ноль
else:
average = total / count
return average
# Пример использования
numbers = [1, 5, 9, 12, 7, 3, 8, 10]
threshold = 5
average = calculate_average_above(numbers, threshold)
print(f"Среднее арифметическое элементов списка, больших {threshold}: {average}")
Артем Купрацевич
Без нейросети не можете решить даже такой примитив?
Арсен Саркисян
корректно ли возвращать ноль если нет подходящих элементов?
Похожие вопросы
- Решите, пожалуйста, задачу на Python
- Пожалуйста, помогите решить задачу на Python. Упражнения 57,58,59,60.
- Нужно решить задачу на Python
- Помогите решить задачу на Python. Никак не могу решить задачу, больше дня не могу найти ответ! Никакой код не работает.
- Пожалуйста, помогите решить задачу на Python. Упражнение 124, 125, 146
- Не получается решить задачу по Python, как решить?
- Решение задач по python
- Задача в Python? Помогите решить, не получается! Решить нужно без функций и методов. Только циклы и условные операторы.
- Помогите решить задачу на python! Упражнение 41,45,47.
- Помогите решить задачу на python! Упражнение 49,50,51,52,53.