首页 > 解决方案 > 如何获得分层嵌套列表结构的平均值?

问题描述

我应该使用层次结构计算它的平均值,例如,在 sublist[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])等等......

我一直在使用http://www.pythontutor.com/visualize.html#mode=edit可视化代码

任何建议表示赞赏!

标签: python

解决方案


您可以使用简单的递归:

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))

输出:

16.866666666666667

推荐阅读