【发布时间】:2019-09-23 21:58:29
【问题描述】:
如何在包含子项的字典中进行迭代,该子项包含一个包含更多字典的列表,并在某些条件完成时添加一个值
我有的字典的一部分是这样的:
{
"a": "segments",
"children":
[{"a": 1,
"order": "1",
"price": 1500.0,
"children":
[{
"a": "1.1",
"order": "2",
"price": 75.0,
"children":
[{
"a": "1.1.1",
"order": "3",
"price":100.0
}]
}]
// . . .
},
{"a": n,
"order": "1",
"price": 100.0,
"children":
[{
"a": "n.1",
"order": "2",
"price": 1000.0
}]
}]
}
我一直在尝试在函数中使用不同的 for 循环来解决它, 但我没有得到想要的结果。
我想要对订单 1 的每个孩子做,直到他的最后一个孩子并总结所有价格,然后对订单 2 做同样的事情,依此类推直到最后一个孩子
我现在已经知道它是一个字典,并且在关键子项内部有一个包含更多字典的列表,我可以执行几个 for 循环,如下所示
list_segments = []
first_children = data['children']
for dicts in first_children:
for segment in dicts['children']:
list_segments.append(segment)
但问题是我不知道如何创建一个与下一个孩子一起反馈的函数,遍历所有孩子直到结束。
所需的输出应该是所有级别的键,如下所示:
level_price: price order 1 +price order 2 + price price order 3
level_price: price order 2 + price price order 3
level_price: price order 3
【问题讨论】:
-
写一个递归函数。
标签: python list dictionary for-loop nested-loops