我想用以下结构分析数据:
parent transaction
child transaction A
child transaction AA
child transaction AB
child transaction AC
child transaction B
child transaction BA
child transaction BB
child transaction BC
在这种结构中,子事务(例如子事务AA)也可能有子事务,我希望尽可能深入到多个深度级别,理想情况下甚至通过变量定义最大深度(在变量depth_级别下面的代码中) 如何使用for循环执行此操作?我目前的问题是,执行在完成树的一个分支(例如子事务A)后停止
我的代码目前的结构如下:
start_address=callAddress('bc1qn3gwc49e02kkd2t8svpcmg5hlvtaacvl79wae0')
transaction_targets=analyseTransaction(start_address)
for j in transaction_targets:
result=callAddress(j)
inner_transaction_targets=analyseTransaction(result)
compileAddresses(compiled_receiver_addresses,inner_transaction_targets)
for i in inner_transaction_targets:
result=callAddress(i)
inner_out_addr=analyseTransaction(result)
compileAddresses(compiled_receiver_addresses,inner_out_addr)
depth_level=depth_level+1
print(depth_level)
if depth_level>50:
print('Maximum depth reached.')
break
“AnalysetTransaction”函数返回事务列表,即上面概述中的子事务。函数“CompiledAddresses”将所有记录的事务地址收集到一个列表中。 我希望循环向下执行,直到深度为x(由变量“depth_level”标识),然后转到下一个分支(即子事务B)
你知道我做错了什么吗
使用像
for
这样的固定循环控件无法轻松处理此问题。如果您正在从列表中加载(可能是卸载)信息,则可以使用while
。不过,最自然的做法是使用递归调用来处理遇到的每一层结构,并使用状态参数来控制深度比如:
相关问题 更多 >
编程相关推荐