【发布时间】:2017-10-07 14:38:47
【问题描述】:
我需要一个名为 average(a) 的函数,其中 a 是一个列表,它使用递归返回元素的平均值。我用一个名为 sum 的辅助函数解决了这个问题(它递归地解决了列表中所有元素的总和),但我想在平均函数中解决它。
这是我尝试过的:
def average(a):
if len(a)==1:
return a[0]
else:
return (a[0]+average(a[1:]))/len(a)
print(average([1,2,3]))
在这种情况下它应该返回 2.0。
这里的问题是,当我在 return 中调用函数时,我再次划分 len(a)。这是不对的。
【问题讨论】:
-
想要东西很好,但这不是免费的编码服务。当您遇到无法通过调试和谷歌搜索解决的特定问题时,请进行合法尝试并返回。
-
def promedio(a): if len(a)==1: return a[0] else: return (a[0]+promedio(a[1:]))/len(a ) print(promedio([1,2,3])) 这是我的尝试,我知道问题是我没有划分最终结果,我在划分内划分,但不知道如何解决。对不起,我是新手,不知道如何格式化我的代码!
-
编辑您的问题以包含所有相关信息并提名重新开放。
-
您不能格式化评论,也不应该在 cmets 中发布代码
标签: python-3.x list recursion average