首先,我使用的是 python。
我有一个名为 tier1 的项目列表,它看起来像这样。
tier1 = ['a1','a2,'a3',..,'an']
我有 2 个函数,称为 functionA 和 functionZ。
他们都将字符串作为参数并生成如下列表输出。这些列表必须在执行期间生成,并且从一开始就不可用。只有 tier1 可用。
listOutput = functionA(tier1[0])。
列表输出看起来像这样
listOutput = ['b1','b2,'b3',..,'bn']
下一次在 listOutput 上使用 functionA 假设项目'b1',它将产生
listOutput = functionA('b1')
output: listOutput = ['bc1','bc2,'bc3',..,'bcn']
这次当使用 functionA 时,假设是 'bc1',它可能会变成空的,因此使用 functionZ 代替 'bc1' 并将输出存储在某处。
listOutput = functionA('bc1')
输出
listOutput = []
所以我用
listOutput = functionZ('bc1')
输出
listOutput = ['series1','series2','series3',....,'seriesn']
现在我必须回去尝试 bc2,直到 bcn 执行相同的逻辑。完成后,我将在“b2”上使用 functionA。等等。
每个项目的深度是可变的。
它看起来像这样
只要 listOutput 不为空,就必须在 listOutput 项或 tier1 项上使用 functionA,直到它变为空。然后 functionZ 必须用于列表中 functionA 为空的任何项目。
在tier1之后,listOutput也永远是一个list,同样要一个一个循环,同样的逻辑。
我正在尝试基于此创建递归函数,但我被卡住了。
到目前为止,我有,
def recursivefunction (idnum): #idnum will be one of the list items from tier1 or the listOutputs produced
listOutput = functionA(idnum)
if not listOutput:
return functionZ(idnum)
else:
return recursivefunction(listOutput)
但是我的函数返回列表,我如何让它们更深入地进入每个列表直到使用 functionZ 并且一旦它被用来移动到列表中的下一个项目。
我需要创建一种新的数据结构吗?我不知道从哪里开始,我应该寻找创建某种带有链表的类吗?
缥缈止盈
相关分类