如何用for循环简化有规律的if代码

if current_layer == 1:
tree[-1][‘child’].append(line)
elif current_layer == 2:
tree[-1][‘child’][-1][‘child’].append(line)
elif current_layer == 3:
tree[-1][‘child’][-1][‘child’][-1][‘child’].append(line)
elif …..
上面这些代码怎么用for来简化,eval和exec就不要推荐了,因为append的数据有点复杂

讨论数量: 2
Jason990420

代码复杂化了 !

from copy import deepcopy

line = {'child':[1]}
tree = [{'child':[1]}]

for current_layer in range(1, 4):
    subtree = tree
    for j in range(current_layer):
        subtree = subtree[-1]['child']
    subtree.append(deepcopy(line))

print(tree)
[{'child': [1, {'child': [1, {'child': [1, {'child': [1]}]}]}]}]
2年前 评论
current_node = tree[-1]
for layer in range(current_layer - 1):
    current_node = current_node['child'][-1]
current_node['child'].append(line)
2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!