Python多层嵌套循环,计算每一层的收入占比
时间: 2023-11-19 11:43:06 浏览: 146
假设你有一个多层嵌套的数据结构,其中每一层代表一级分类,每一层内部包含多个二级分类,而每个二级分类又包含多个三级分类。你想要计算每一层的收入占比。下面是一个示例代码,演示如何实现这个计算过程:
```python
# 假设你的数据结构如下
data = {
'一级分类1': {
'二级分类1': {
'三级分类1': 100,
'三级分类2': 200,
'三级分类3': 300
},
'二级分类2': {
'三级分类4': 400,
'三级分类5': 500
}
},
'一级分类2': {
'二级分类3': {
'三级分类6': 600,
'三级分类7': 700,
'三级分类8': 800
},
'二级分类4': {
'三级分类9': 900,
'三级分类10': 1000
}
}
}
# 计算每一层的收入总和
def calculate_total_income(data):
if isinstance(data, dict):
total_income = sum(calculate_total_income(value) for value in data.values())
else:
total_income = data
return total_income
# 计算每一层的收入占比
def calculate_income_ratio(data):
total_income = calculate_total_income(data)
def calculate_ratio(data, total_income):
if isinstance(data, dict):
for key, value in data.items():
if isinstance(value, dict):
calculate_ratio(value, total_income)
else:
data[key] = value / total_income
calculate_ratio(data, total_income)
# 调用函数计算收入占比
calculate_income_ratio(data)
# 输出结果
print(data)
```
这段代码会将每一层的收入占比计算出来,并将结果存储在原始的数据结构中。你可以根据你的实际数据结构修改代码,以适应你的需求。在输出结果时,你可以选择将结果保存到新的数据结构中,或者进行其他进一步处理。
阅读全文