首页 > 解决方案 > Python - 返回一个元组的函数,其中包含 l 中所有正数的最小值、最大值、总和和平均值

问题描述

第一篇文章和 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))

标签: python

解决方案


尝试这个,

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)

推荐阅读