组合两个列表的平均值

2024-06-07 00:12:16 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有以下功能:

def avg_grams(l: list) -> float:
    ''' Returns the average grams of parameter list
    '''
    result = 0
    for x in C:
        result += float(x.calories)
    return result / len(l)

函数应该返回给定的gram列表中的平均值。但是,如果我有两个列表,如何使用此函数来查找两个列表的总体平均值?在

例如:

^{pr2}$

Tags: ofthe函数功能列表parameterdefresult
2条回答

您可以编写avg_grams(A+B),但是如果AB的长度不同,这可能不会得到预期的结果。在

PS您的变量名需要进行一些清理,例如您使用的C,它在任何地方都没有定义,而您正在寻找{},而您的示例使用的是一个简单的整数列表。在

这个怎么样?在

(一)

def avg_grams(lists):
    """Returns the average grams of parameter list """
    sums = [sum(l) / float(len(l)) for l in lists]
    overall_sum = sum(sums) / float(len(sums))
    return sums, overall_sum

a = [2, 3, 4]
b = [3, 4, 5]

print('Sums: {} \noverall sum: {}'.format(*avg_grams((a, b))))

输出:

^{pr2}$

B)

或者,如果你对单个的总和不感兴趣,试试这个:

def avg_grams(some_list):
    """ Returns the average grams of parameter list """
    return sum(some_list) / float(len(some_list))

a = [2, 3, 4]
b = [3, 4, 5]

print('overall sum: {}'.format(avg_grams(a+b)))

输出:

overall sum: 3.5

注:

A和B可以产生不同的结果,这取决于列表是否具有不同的长度;这实际上取决于您想要完成什么,加权平均值,或者所有项目(来自所有列表)的平均值

相关问题 更多 >