此函数返回正确的树深度数,但路径不正确。
all_paths = []
all_plen = []
def calc_path(case_list, curPath, d):
d_list = [cl for cl in case_list if (type(cl) == list)] # Search in depth
if not d_list: # +1 path
all_paths.append(curPath)
all_plen.append(d)
for cl in d_list:
cPath = curPath
cPath.append(case_list.index(cl))
calc_path(cl, cPath, d + 1)
def main():
c_list = [('A0', 4), ('B0', 5), ('C0', None),
[('A1', 1), ('B1', None),
[('A2', 13), ('B2', 32)],
('C1', 15)
],
('D0', 23), ('E0', None), [('A11', 7)]]
calc_path(c_list, [], 0)
print all_plen
print all_paths
if __name__=='__main__':
main()
如何返回避免全局变量的路径?
更新。
我正在尝试在树中获取所有路径。 我一直试图将'all_paths'作为函数的参数传递,但我的结果不正确。
“c_list”包含一个带有第二个“None”的元组,后跟一个下一个嵌套级别列表。
P.S。对不起,过时的浏览器破坏了我的代码缩进。固定的。