Python - Функция для возврата кортежа с min, max, суммой и средним для всех положительных чисел в l - PullRequest
0 голосов
/ 17 июня 2020

Первый пост и новичок с python здесь. У меня есть следующий вопрос, на который я пытаюсь ответить. Я кое-что собрал по кусочкам, но получал постоянные ошибки, пытаясь вычислить все положительные числа. Вторая часть предназначена для определения любых неплавающих чисел.

Напишите функцию get_all_stats, которая принимает список l чисел с плавающей запятой в качестве аргумента и возвращает кортеж минимального, максимального, суммы и среднего всех положительных чисел в l.

Вдобавок возвращает «Неверное значение!» если l имеет какое-либо число без плавающей запятой

get_all_stats([1.0, 2.0, 3.0, 3, -1.0])

def get_all_stats(l):
    l_tmp = [num for num in l]
    return(min(l_tmp),max(l_tmp),sum(l_tmp),sum(l_tmp)/len(l_tmp))

Ответы [ 2 ]

0 голосов
/ 17 июня 2020

get_all_stats ([1.0, 2.0, 3.0, 3, -1.0])

Исходя из списка с отрицательным значением, его следует игнорировать и дать мне следующий вывод: (1.0, 3.0, 6.0, 2.0).

И если значения равны ([1.0, 2.0, 3, -1.0]), я должен получить вывод: «Недопустимое значение!».

Эти 2 дополнительных шага поверх то, что я уже предоставил, у меня возникли проблемы.

0 голосов
/ 17 июня 2020

Попробуйте это,

from itertools import repeat

def get_all_stats(data):
    lst = [item for item in data if item >=0]
    if not all(map(isinstance, lst, repeat(float))):
        return None
    return (min(lst), max(lst), sum(lst), sum(lst)/len(lst))

data = [1.0, 2.0, 3.0, 3.0, -1]
result = get_all_stats(data)
if result:
    print(result)
else:
    print("Invalid value!")
(1.0, 3.0, 9.0, 2.25)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...