【发布时间】:2014-08-23 19:21:52
【问题描述】:
我无法针对任意长度的indeces 概括以下代码:
sol = 0
for f_2 in F_2:
if f_2 in A[0]:
fac1 = f(f_2,indeces[0])
for f_1 in F_1:
if f_1 in A[0][f_2][0]:
fac2 = f(f_1,indeces[1])
for f_0 in F_0:
if f_0 in A[0][f_2][0][f_1][0]:
sol += (float(A[0][f_2][0][f_1][0][f_0])/A[0][f_2][0][f_1][1])*fac1*fac2*f_(indeces[-1],f_0)
也许有人有想法。原则上,问题是迭代循环。 A 是一个以列表 [dict,int] 为节点的树结构。
【问题讨论】:
-
您能提供一个完整的工作示例吗?目前尚不清楚
f、F_0、F_1、F_2、A和indeces应该是什么。 -
递归通常适用于遍历任意(但相对较小的有限)深度的树结构;但我不知道该代码应该如何利用这种步行值(我也不想尝试解开它)。提供样本输入/输出不会有什么坏处。
-
我相信你有两个错别字:1)你的
float()的参数是...[f_0],这是一个子节点,不应该是一个数字吗?我猜最后缺少[1]。 2) 在最后一行的末尾,您使用f_(),应该是f()还是其他函数?
标签: python loops tree cartesian-product