假设我有这个功能:
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)
该函数应该返回给定的克列表中的平均克数。但是,如果我有两个列表,如何使用此功能查找两个列表的总体平均值?
例如:
List A: [2, 3, 4] - Average: 3
List B: [3, 4, 5] - Average: 4
Overall avg: 3.5
答案 0 :(得分:0)
您可以撰写avg_grams(A+B)
,但如果A
和B
长度不同,则可能无法获得所需的结果。
PS您的变量名称需要进行一些清理,例如您使用的C
未在任何地方定义,而您正在寻找x.calories
,而您的示例使用简单的整数列表。
答案 1 :(得分:0)
这个怎么样?
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))))
输出:
Sums: [3.0, 4.0]
overall sum: 3.5
或者,如果您对个别金额不感兴趣,请尝试以下方法:
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可以产生不同的结果,具体取决于列表是否有不同的长度;这真的取决于你想要完成什么,加权平均值,或所有项目的平均值(来自所有列表)合并