我应该使用层次结构计算它的平均值,例如,在子列表[8,[9,91],11]中,我应该首先计算[9,91]的平均值,然后是[8,average of [9,91], 11]的平均值,然后是总平均值:[2,average of [3,5], average of ([8,average of [9,91], 11])等等
def average_of(l):
return sum(
[(
e if type(e) is int else average_of(e)
) for e in l if type(e)]
) / len(l)
a = [2, [3, 5], [6, 6, 7], [8, [9, 91], 11], [12, 121, [[14]]]]
print(average_of(a))
def ave(d):
return sum(ave(i) if isinstance(i, list) else i for i in d)/float(len(d))
data = [2,[3,5],[6,6,7],[8,[9,91],11],[12,121,[[14]]]]
print(ave(data))
这看起来像是家庭作业,但你可以试一试。我不知道答案应该是什么,但我想到了这个:
它打印出来了
编辑:阿贾克斯和我似乎在同一时间发布了相同的答案
可以使用简单的递归:
输出:
相关问题 更多 >
编程相关推荐