我想返回一个函数,它给出所有 50
或更多分数的平均值。当我运行我的代码时,它总是返回一个空列表。
这是我尝试过的:
def get_pass_average(marks):
average = []
for count in marks:
if count >= 50:
average = sum(count) / len(count)
return round(average,2)
def test_get_pass_average():
list1 = [50, 83, 26, 65, 92, 29, 77, 64]
print('%.2f' % (get_pass_average(list1)))
请帮我找出代码中的问题,输出应该是71.83
。
最佳答案
试试这个:
l=[i for i in list1 if i>=50]
print(sum(l)/len(l))
或者:
from statistics import mean
l=[i for i in list1 if i>=50]
print(mean(l))
如果要为空列表设置条件:
l=[i for i in list1 if i>=50]
if l:
print(sum(l)/len(l))
或者:
from statistics import mean
l=[i for i in list1 if i>=50]
if l:
print(mean(l))
对于 python 2:
print(sum(l)/len(l))
应该是:
print(float(sum(l))/float(len(l)))
并且没有统计模块。
您的代码不起作用,因为您对迭代器(整数)而不是列表求和,所以这就是它不起作用的原因
关于python - 计算列表中所有大于或等于 50 的数字的平均值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52464451/