Aoa*_*ppa 1 python nested list
我有一个包含列表的嵌套字典,需要获取字典中每个顶级值中所有列表的长度总和。示例列表如下:
data = {0: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
1: {0: [11, 12],
1: {0: [13, 14],
1: [15, 16],
2: [17, 18, 19, 20],
3: {0: [43, 34],
1: [4],
2: [2, 3, 4, 5]}}}}
Run Code Online (Sandbox Code Playgroud)
我相信我有一个使用以下两个函数的可行解决方案:
def TreeSum(tree):
return [len(v) if isinstance(v, list) else SubTreeSum(v) for v in tree.values()]
def SubTreeSum(tree):
return sum([len(v) if isinstance(v, list) else SubTreeSum(v) for v in tree.values()])
Run Code Online (Sandbox Code Playgroud)
TreeSum(data)is[10, 17]和it的输出TreeSum(data[1][1])是[2, 2, 4, 7]。
我尝试过将这些功能组合成一个功能,主要是出于美观的原因,但我还没有找到解决方案。有人可以建议解决这个问题吗?
你所需要的只是这个:
def TreeSum(tree):
return [len(v) if isinstance(v, list) else sum(TreeSum(v)) for v in tree.values()]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
125 次 |
| 最近记录: |